从文件中输入两个单词的字符串(C++)
Inputting two word string from a file (C++)
我有一个 .txt 文件,我必须在其中读取多个项目并
然后在控制台中输出它们。这是文本文件中的一行示例
int - string - int - float - float - string - char*
32073 Stationary Bike 60 135 490.9 moderate Tue Apr 17 16:53:46
我这里的问题主要是让第二项,字符串,尽管两个词之间有 space 输入。还值得注意的是,有时字符串只有一个单词。现在似乎 choiceName 正在走整条线,而没有像我想象的那样在 space 处停下来。
我一次只从文本文件中获取一行输出到控制台,而不是文件中的所有内容。我需要按回车键才能看到我不想要的下一行,
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;
}
您的代码在等待 Enter 时卡住,因为您使用 std::cin
而不是 transactionLog
。
我有一个 .txt 文件,我必须在其中读取多个项目并 然后在控制台中输出它们。这是文本文件中的一行示例
int - string - int - float - float - string - char*
32073 Stationary Bike 60 135 490.9 moderate Tue Apr 17 16:53:46
我这里的问题主要是让第二项,字符串,尽管两个词之间有 space 输入。还值得注意的是,有时字符串只有一个单词。现在似乎 choiceName 正在走整条线,而没有像我想象的那样在 space 处停下来。
我一次只从文本文件中获取一行输出到控制台,而不是文件中的所有内容。我需要按回车键才能看到我不想要的下一行,
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;
}
您的代码在等待 Enter 时卡住,因为您使用 std::cin
而不是 transactionLog
。