用if语句读一整行

时间:2017-11-13 01:11:27

标签: c++

好的,所以我有一个读取.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语句中实现它。

由于

2 个答案:

答案 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
}