Я только что нашел комментарий в этом ответе, в котором говорится, что использование iostream::eof в условии цикла «почти наверняка неправильно». Обычно я использую что-то вроде while(cin>>n), которое, я думаю, неявно проверяет наличие EOF.
Почему проверка eof явно выполняется с помощью while (! cin.eof()) неправильно?
Чем это отличается от использования scanf("...",...)!=EOF в C (которое я часто использую без проблем )?
Подробнее здесь: https://stackoverflow.com/questions/560 ... m-eof-cons