Ввод числа через iostream
От: Lonely Dog Россия  
Дата: 29.10.07 13:38
Оценка:
Привет!

Никогда не использовал 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.
В чем тут дело?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.