Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка потока ввода 
:(
    Опции темы
tigger
Дата 17.9.2005, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: нет
Всего: 4



Существует такая проблема, в этом куске кода ввожу числа все нормально работает
ввожу символы переходит в бесконечный цикл, оператор cin >> dx; игнорируется в чем дело, как от этого избавиться или отловить ввод символов, или что-то еще или другую конструкцию сделать посоветуйте.

Код

int dx;
do
{
cout << "введите шаг рисования кругов (1..25) ";
cin >> dx;
} while ((dx > 25) || (dx < 1));


Это сообщение отредактировал(а) tigger - 17.9.2005, 08:30


--------------------
user posted image
PM MAIL   Вверх
BreakPointMAN
Дата 17.9.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



попробуй что-то вроде этого:
Код

int dx;
do
   {
    cout << "введите шаг рисования кругов (1..25) ";
    cin >> dx;
    if(cin.fail())
       {
        cin.clear();
        cin.ignore( cin.rdbuf()->in_avail());
       }
   } while ((dx > 25) || (dx < 1));



--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
tigger
Дата 17.9.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: нет
Всего: 4



Огромное спасибо все работает если не сложно объясни что это за конструкция

Код

if(cin.fail())              //-- это понятно ошибка ввода
       {
        cin.clear();     //--это тоже очистка потока
        cin.ignore( cin.rdbuf()->in_avail()); //--?????
       }



--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0387 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.