Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 18:39   #11
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Вечно с нами новичками проблемы)))
Paul_AG вне форума
Старый 23.03.2009, 03:04   #12
Nomlpppp
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 51
По умолчанию

Данная проблема на самом деле решается подругому.
В данном случае поток cin впадает в состояние ошибки если ввести не число.
Цитата:
Чтобы выяснить, в каком состоянии находится поток, достаточно проверить его значение на истину:
if (!cin)
// операция чтения не прошла
Цитата:
if (!cin) {
cerr << "Ошибка ввода WordCount" << endl;
return -1;
}

Возможно, вместо этого мы предпочли бы продолжить выполнение программы, предупредив пользователя об ошибке и попросив повторить ввод. Но перед чтением нового значения из потока cin необходимо перевести его в нормальное состояние. Это можно сделать с помощью функции-члена clear():
cin.clear(); // сброс ошибок
Так же надо будет удалить неправильное из потока с помощью ignore
Цитата:
По умолчанию ignore() читает и удаляет один символ из потока, для которого вызвана
Итого надо добавить следующие строки после cin >> n;
Код:
cin >> n;
if( !cin )
 {
 cout << "Error!\n" << "\tonly numbers 1 2 3\t\n\n\n";

 cin.clear();
 cin.ignore();

 continue; 
 }
Nomlpppp вне форума
Старый 24.03.2009, 19:36   #13
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Спасибо огромное!
Paul_AG вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить ошибку Temirlan Общие вопросы Delphi 2 20.02.2009 18:42
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 07.12.2008 19:42
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 21.11.2008 14:48
помогите исправить ошибки в программе... VDK23 Помощь студентам 1 17.04.2008 13:05
Помогите исправить ошибки в программе Gambit90 Помощь студентам 1 20.12.2007 16:24