从while(getline())不起作用的文件中读取行
问题描述:
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.在while
和if
之间插入cout
语句显示我的getline()
未读取一行。从while(getline())不起作用的文件中读取行
在测试过程中,我在while
循环之前使用了getline()
,它把所有东西都收拾得很好。
Output.txt的:
这是input1.txt的第一行。
这是input2.txt的第一行。
这是input1.txt中的第二行。
这是input2.txt中的第二行。
这是input1.txt中的第三行。
这是input2.txt中的第三行。
这是input1.txt中的第四行。
这是input2.txt中的第四行。
经过一段时间的测试和搜索互联网,我仍然不知道我做错了什么。任何帮助,将不胜感激。
感谢
一个可能的原因是[使用名称空间标准是不好的做法](http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-in-c-considered-bad-practice)。谁知道你真的在调用哪个getline()... –
该代码不会计算出现“input1”的行数。它计算不以'“input1”'开始的行数。 –
为什么'while(getline(out,temp))'后面的分号存在? – MikeCAT