如何防止循环额外运行一遍?

时间:2019-10-21 23:32:29

标签: c++ loops while-loop

我正在运行while循环以从输入文件读取并写入输出文件。该程序看起来工作正常,只是最后一行被读取了两次。我相信这段代码应该循环执行,直到文件没有剩余内容可供读取并关闭为止。

while (my_input_file) {
my_output_file << getStudentID() << "  " << studentScores() << " ";
totalScore();
calculatePercentage();
calculateGrade();
}

1 个答案:

答案 0 :(得分:0)

istream直到之后尝试读取文件末尾,才知道它已经到达文件末尾。如果您只读取了文件的确切内容,则istream仍然认为这样做很好,这意味着您在尝试从文件中读取内容后需要插入istream::fail检查。