eof()是否查看行或数据? C ++

时间:2014-03-02 23:20:29

标签: eof getline

假设我试图从名为input.txt的文件中逐行读取数据。大约有20行,每行包含3种不同的数据类型。如果我使用此代码:

while(!file.eof){ ..... }

此函数是否每次迭代仅查看每行中的一种数据类型,或者每次迭代时每行查看所有数据类型 - 因此下一次迭代将查看下一行而不是下一行下一个数据类型?

非常感谢。

1 个答案:

答案 0 :(得分:0)

.eof()查看文件结束标志。在运行文件末尾之后设置标志。这是不可取的。

有关如何运作和最佳做法的精彩博文可以找到here

基本上,使用

std::string line;
while(getline(file, line)) { ... }

while (file >> some_data) { ... }

因为它会在正确的时间发现错误和文件结束并采取相应的行动。