После строки «Вы ввели 10» символы «.8» остаются в потоке. Когда он пытается прочитать это в целое число, он терпит неудачу, и поэтому он переводит поток в плохое состояние.
Поскольку поток находится в плохом состоянии, условие цикла не выполняется, и вы выходите из цикла.
(В частности, он устанавливает "плохой" бит, я думаю, но прошло слишком много времени с тех пор, как я с этим справился, и я не уверен - проверьте документацию, если вам нужен такой уровень детализации)
В сторону: знайте, что если вы попытаетесь прочитать снова, символы ".8" все равно останутся в потоке, и вы снова потерпите неудачу . Это распространенная ошибка ввода / вывода.