Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.72
XenHSE
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 18
#1

как работает cin.good() - C++

21.02.2013, 15:27. Просмотров 6273. Ответов 8
Метки нет (Все метки)

Здравствуйте. Мне необходимо организовать "защиту от дурака". Пользователь должен ввести целое число. Моя программа должна считывать вводимые данные до тех пор, пока пользователь не введет целое число.
Мой код:
C++
1
2
3
4
5
6
7
8
9
    int var1;
    for(;;)
    if (cin>>var1,cin.good())
    {
        cout<<"var1= "<<var1;
        break;
    }
    else
        cout<<"\nERROR";
В результате при вводе символа, программа зацикливается и выводит "ERROR"
Помогите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2013, 15:27     как работает cin.good()
Посмотрите здесь:

C++ Не работает cin
C++ не работает Cin
C++ Не работает cin
C++ Как работает Cin.ignore()
C++ Не работает ни cin.Get(), ни cin.Getline()
C++ Cin.get не правильно работает
Как работает cin.get() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
395 / 388 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
21.02.2013, 15:29     как работает cin.good() #2
C++
1
if (cin>>var1 && cin.good())
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
21.02.2013, 15:30     как работает cin.good() #3
Цитата Сообщение от XenHSE Посмотреть сообщение
В результате при вводе символа, программа зацикливается и выводит "ERROR"
Очищай биты ошибок. clear()
XenHSE
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 18
21.02.2013, 15:32  [ТС]     как работает cin.good() #4
Цитата Сообщение от Пaтрик Посмотреть сообщение
C++
1
if (cin>>var1 && cin.good())
ничего не изменилось

Добавлено через 1 минуту
Цитата Сообщение от Vourhey Посмотреть сообщение
Очищай биты ошибок. clear()
Как использовать clear?
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
21.02.2013, 15:34     как работает cin.good() #5
Цитата Сообщение от XenHSE Посмотреть сообщение
Как использовать clear?
Почитай документацию про эту функцию. Там написано.
XenHSE
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 18
21.02.2013, 15:38  [ТС]     как работает cin.good() #6
Извините, вы это имели в виду?
C++
1
2
3
4
5
6
7
8
9
10
11
12
    int var1;
    for(;;)
    if ((cin>>var1) && (cin.good()))
    {
        cout<<"var1= "<<var1;
        break;
    }
    else
    {
        cout<<"\nERROR";
        cin.clear();
    }
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
21.02.2013, 15:44     как работает cin.good() #7
C++
1
2
        cin.clear();
        cin.ignore();
это. Как пример.
XenHSE
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 18
21.02.2013, 15:56  [ТС]     как работает cin.good() #8
Спасибо большое, я поняла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2013, 22:06     как работает cin.good()
Еще ссылки по теме:

Почему не работает cin.clear() и как работает sync()? C++
C++ Как работает cin.ignore(), именно в том случае, когда он написан без параметров?
Cin.clear() не работает? C++
Do while и cin.good C++
Не работает cin C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
bolwevik
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 6
08.11.2013, 22:06     как работает cin.good() #9
Было бы неплохо, раз ты разобрался, то часть кода привёл бы.
У меня так в бесконечном цикле и "шурует" .

Добавлено через 13 минут
else {cout<<"Данные должны быть целочисленные!\tВведите [0] или [1]\n";cin.clear();cin.sync();Proverka();}

Вот так работает так как я хочу. Спасибо всем.
Yandex
Объявления
08.11.2013, 22:06     как работает cin.good()
Ответ Создать тему
Опции темы

Текущее время: 06:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru