好的,所以我有一个读取.txt文件的程序。
以下是.txt文件的示例内容:
1 load grades.csv
2 save grades.csv
3 show all
我把它作为字符串command
读入。在第1行中,我可以正常读取命令load
(该命令读取grades.csv
文件),save
命令也是如此。但对于下一行,我不确定如何将show all
命令作为一个单词阅读。
这就是我所拥有的代码:
if (command == load)
{
in.ignore();
cout << "load" << endl;
}
else if (command == "show all") //this is the error, it only reads in **save**
cout << "show" << endl;
else
cout << "save" << endl;
这是在while循环中运行的。我觉得我必须使用ignore()
函数,但我不确定如何在if-else语句中实现它。
由于
答案 0 :(得分:1)
如果每行总有两个单词,可以单独阅读:
while (file >> command >> option)
{
if (command == "load")
cout << "load " << option << endl;
else if (command == "show" && option == "all")
cout << "show all" << endl;
else if (command == "save")
cout << "save " << option << endl;
}
答案 1 :(得分:0)
使用:
,而不是使用只检索空格的cin
while( std::getline( cin, s ) )
{
// s will be a full line from your file. You may need to parse/manipulate it to meet your needs
}