我已经在线搜索很长时间了,据我发现,没有正确的答案。现在最常见的答案如下:
int main() {
int number_of_lines = 0;
std::string line;
std::ifstream myfile("textexample.txt");
while (std::getline(myfile, line))
++number_of_lines;
std::cout << "Number of lines in text file: " << number_of_lines;
return 0;
}
如果textexample.txt
文件在末尾实际上有两个空行,则该程序只会数一个,我猜是第一个。如下:
123456
上面的6个数字和3个空行总计为9行,但上面的程序将返回8。
我不知道为什么,但是std::getline()
似乎只循环8次。
示例中的文件有10行,其中3行为空。而且,如果我运行您的代码(丢失了...(,它告诉我有10行。因此,您要么运行不同的代码,要么正在错误地引用文件。或者您的C 标准库以某种方式破坏了...
如果我用"端"删除了线,我得到9而不是8行。