使用while(getline())无效时从文件中读取行

时间:2016-04-30 02:10:53

标签: c++

ifstream out("output.txt");
string search = "input1";
int count = 0;

while (getline(out, temp));
{
    if (temp.find(search))
    {
        count++;
    }
}

cout << "Total times input1 is present in output.txt: " << count << endl;

我正在尝试计算输出文件中“input1”出现的次数。 cout显示1,应该显示4.在coutwhile语句之间加if表示我的getline()没有读一行。< / p>

在测试时,我在此getline()循环之前使用了while,并且它完全接受了所有内容。

Output.txt:

  

这是input1.txt中的第一行。
  这是input2.txt中的第一行。
  这是input1.txt中的第二行。
  这是input2.txt中的第二行。
  这是input1.txt中的第三行。
  这是input2.txt中的第三行。
  这是input1.txt中的第四行。
  这是input2.txt中的第四行。

经过一段时间的测试和搜索互联网,我仍然不知道我做错了什么。任何帮助,将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

while (getline(out, temp))之后的分号将包含if语句的块从循环中取出并且find函数只能看到文件中的最后一行。尝试删除它。