假设我试图从名为input.txt的文件中逐行读取数据。大约有20行,每行包含3种不同的数据类型。如果我使用此代码:
while(!file.eof){ ..... }
此函数是否每次迭代仅查看每行中的一种数据类型,或者每次迭代时每行查看所有数据类型 - 因此下一次迭代将查看下一行而不是下一行下一个数据类型?
非常感谢。
答案 0 :(得分:0)
.eof()
查看文件结束标志。在运行文件末尾之后设置标志。这是不可取的。
有关如何运作和最佳做法的精彩博文可以找到here。
基本上,使用
std::string line;
while(getline(file, line)) { ... }
或
while (file >> some_data) { ... }
因为它会在正确的时间发现错误和文件结束并采取相应的行动。