Разбираем, как C++‑потоки запоминают результат ввода: чем отличаются состояния
good(),
eof(),
fail(),
bad(), почему ловушка
while (
!
in.
eof()) приводит к лишней итерации, как правильно строить циклы чтения через
while (
in
>>
x) и построчно через
std::getline, а также как диагностировать причины остановки и восстанавливаться после
fail() с помощью
clear() и
ignore().