【发布时间】:2011-09-29 12:39:10
【问题描述】:
ifstream file("file.txt");
if(file.fail())
{
cout<<"Could not open the file";
exit(1);
}
else
{
while(file)
{
file.getline(line[l],80);
cout<<line[l++]<<"\n";
}
}
我正在使用二维字符数组来保持从文件中读取的文本(多于一行)以计算文件中的行数和单词数,但问题是 getline 总是读取额外的一行。
【问题讨论】:
-
你的代码格式怎么了?
-
在打印应该读取的行之前,您永远不会检查
getline是否成功。如果您检查getline是否成功,您几乎肯定会发现它没有读取额外的行。这(基本上)是许多while (!feof(...问题的重复。 -
另外要记住的是,getline 可能会读取不是默认分隔符的其他行尾字符,例如在预期 '\n' 时读取 '\r'... 这里是对该问题的更多描述帖子beginningprogrammer.com/programming/…