Признак конца файла приходится искать в файлах, открытых для чтения. Этот признак устанавливается в тот момент, когда в файле не осталось больше данных, которые можно считать.
Признак конца файла анализируется в выражении вида
while (! In_file.eof()) { … }
Для этой цели нельзя пользоваться циклом
do { … } while (! In_file.eof()), поскольку файл может оказаться пустым.
Однако проверка на конец файла не анализирует ошибки, которые могут встретиться в процессе чтения файла.
Для проверки как конца файла, так и наличия ошибок при его чтении пользуются условием выхода из цикла:
while (In_file.good()) { … }
Оператор цикла
while (In_file) { … }
выполняется до тех пор, пока нет ошибок, в том числе и конца файла (EOF).