Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从文件(C+;+;)输入两个单词字符串_C++_String_File_Input_Fstream - Fatal编程技术网

C++ 从文件(C+;+;)输入两个单词字符串

C++ 从文件(C+;+;)输入两个单词字符串,c++,string,file,input,fstream,C++,String,File,Input,Fstream,我有一个.txt文件,我必须在其中读取多个项目和 然后在控制台中输出它们。下面是文本文件中的一行示例 int-string-int-float-float-string-char* 32073固定式自行车60 135 490.9中等4月17日星期二16:53:46 我这里的问题主要是获取第二项,字符串,尽管两个单词之间有空格,但仍要输入。值得注意的是,有时字符串只有一个单词。现在看来,choiceName像我想象的那样,不停地占据了整个线路 我一次只从文本文件中得到一行输出到控制台,而不是文件中

我有一个.txt文件,我必须在其中读取多个项目和 然后在控制台中输出它们。下面是文本文件中的一行示例

int-string-int-float-float-string-char*

32073固定式自行车60 135 490.9中等4月17日星期二16:53:46


我这里的问题主要是获取第二项,字符串,尽管两个单词之间有空格,但仍要输入。值得注意的是,有时字符串只有一个单词。现在看来,choiceName像我想象的那样,不停地占据了整个线路

我一次只从文本文件中得到一行输出到控制台,而不是文件中的所有内容。我需要按回车键才能得到我不想要的下一行

    while(!(transactionLog >> idNum).eof())
    {
        getline(transactionLog, choiceName, ',');
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');

        transactionLog >> minutes >> weightPoundsCopy >> calories >> intensity;
        getline(transactionLog, timeStamp, '\n');

        std::cout << std::setfill('0') << std::setw(5) << idNum << choiceName << " " << minutes << " " << weightPoundsCopy << " " << calories << " " << intensity << " " << timeStamp << std::endl;
    }
while(!(transactionLog>>idNum.eof())
{
getline(transactionLog,choiceName,',');
std::cin.clear();
std::cin.ignore(std::numeric_limits::max(),'\n');
交易日志>>分钟>>重量磅数>>卡路里>>强度;
getline(transactionLog,时间戳'\n');

std::cout您的代码在等待Enter时被卡住,因为您使用的是
std::cin
而不是
transactionLog

考虑使用正则表达式吗?“还值得注意的是,有时字符串只有一个单词。”-然后您需要使用分隔符而不是空格,例如逗号。如何在txt文件中存储字符指针?要分隔字段,我不会使用
(逗号),它在实际文本中太常见。我会使用
\t
(制表符),或其他不太可能出现在真实文本中的可打印字符。或者更好,我会使用不可打印字符,如
\x01
。如果您真的无法更改格式,并且它确实只有一个字段中的字数可变,则您可以解决它。我必须这样做。请通读整行内容。然后继续工作使用
string::查找
中的最后一个字段,并将字段复制到所需的结构中。将所有字段从末尾移除后,移除前面的字段,剩下的是可变大小的字段。