如何防止我的循环额外运行一次?

How to do I prevent my loop from running one extra time?

本文关键字:一次 运行 我的 何防止 循环      更新时间:2023-10-16

我正在运行一个while循环来读取输入文件并写入输出文件。该程序似乎运行良好,除了最后一行被读取两次。我相信这段代码应该循环,直到文件没有任何东西可以读取并关闭。

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

直到尝试读取文件末尾才知道它已经到达了文件的末尾。如果您只准确读取了文件的内容,istream仍然认为可以继续阅读,这意味着您需要在尝试从文件中读取某些内容后插入istream::fail检查。