我在Code :: Blocks IDE中使用了以下代码。我得到的行数为2.请帮助我使用代码。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream in("readInt.txt", ios::in);
if(!in)
{
cout << "Cannot open file";
return 1;
}
string str;
int j=0;
while(in)
{
getline(in,str);
j++;
}
cout << "No of lines are: " << j;
in.close();
return 0;
}
答案 0 :(得分:2)
结果太小,因为文本文件中的行结尾的编码方式与系统上的约定不同。
使用正确的系统行结尾保存或重新创建文件。
在另一个方向,对于过高的结果,所呈现的代码
while(in)
{
getline(in,str);
j++;
}
...会为空文件生成1的计数。
取而代之的是
while( getline(in,str) )
{
j++;
}
注意:此评论仅涵盖正确性,而非效率。
答案 1 :(得分:2)
首先,您的文本文件没有新字符,所以在文本中只有一行
更改它并使用
尝试使用代码while(getline(in,str))
{
j++;
}
以这种方式你可以避免计算额外的行