Привет!
Никогда не использовал iostream.
А тут попросили помочь.
В общем, есть код:
int GetInt()
{
int ret;
do
{
std::cin >> ret;
if (std::cin.fail())
{
std::cin.clear();
std::cout << "\nPlease, input integer value:-> ";
}
} while(1);
}
Код пытается получить целое число. Если это не удалось, то выводится сообщение об ошибке и снова уходим на ввод.
Вроде все понятно. Однако, если в качестве числа ввести какую-либо букву (например, 'q'), то больше от нас ничего не потребуют. std::cin всегда будет завершаться без ввода и std::cin.fail() всегда будет равен true.
В чем тут дело?