我已经获得了以下代码,我试图计算输入文件中的行数,并且我尝试了几种不同的方法来实现它,但没有运气。
int checkData(string File)
{
string temp;
int linecount = 0;
ifstream input(File);
input.open(File);
while ()
{
getline(input,temp);
linecount++;
temp.clear();
}
return linecount;
}
到目前为止,我已经尝试过了:
while(!input.eof())
{
...
}
和
while(getline(input,temp).good())
{
...
}
第一个没有打破循环,我不太清楚为什么。 (我非常肯定)getline有一个内置的流缓冲区,因此每当我拉入一条线并将其丢回时它应自动读取网线,但没有骰子。对于第二个,循环根本不执行,这对我来说仍然没有意义(说第一行文件不是很好的输入?)。 我使用的测试文件是:
this is a test this Cake
this is a test this Cake
this is a test this Cake
this is a test this Cake
因此,当正确执行时,linecount应返回为4。在执行此操作之前,我已经检查过以确保文件正确打开。
答案 0 :(得分:3)
int number_of_lines = 0;
string line;
ifstream myfile("textexample.txt");
while (std::getline(myfile, line))
++number_of_lines;
希望它有所帮助。