在阅读文件中的最后一个条目后,或者在尝试阅读之后,some_file.good()
是否会返回false
?也就是说,我应该写
while (input.good())
{
getline(input, line);
// ...process
}
或
getline(input, line);
while (input.good())
{
// ...process
getline(input, line);
}
答案 0 :(得分:9)
试图超越那个......
你可以尝试:
while(getline(input, line))
{
// do stuff with line
}
应该添加,该流实现operator!
,它会检查您通常会使用的标记。从getline
返回的是输入流,但由于运算符,会检查标志。
答案 1 :(得分:0)
如前所述,当没有更多行时,getline返回零。如果设置了EOF标志(即在流上到达文件末尾),方法eof()
也返回true:
if(input.eof())
{
// end of file
}