Разбираем, как устроены состояния потока ввода
std::cin: что означают проверки
good(),
eof(),
fail(),
bad(), почему после ошибки формата поток «залипает», и как писать безопасное чтение через
if (
std::cin
>>
x) /
while (
std::cin
>>
x) с корректным различением конца ввода и ошибки формата.