2

some_file.good()在从文件中读取最后一个条目之后返回false,还是在尝试读取之后返回?也就是说,我应该写

while (input.good())
{
    getline(input, line);
    // ...process
}

或者

getline(input, line);
while (input.good())
{
    // ...process
    getline(input, line);
}

?

4

2 回答 2

9

试图阅读更多...

你可以试试:

while(getline(input, line))
{
// do stuff with line
}

应该添加,该流实现operator!,它检查您通常会的标志。返回 fromgetline是输入流,但由于操作符的原因,检查了标志。

于 2010-12-10T12:44:30.110 回答
0

如前所述,当没有更多行时,getline 返回零。eof()如果设置了 EOF 标志(即在流上到达文件结尾),该方法也返回 true:

if(input.eof())
{
// end of file
}
于 2010-12-10T12:50:24.410 回答