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

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

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

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

21.02.2013, 15:27. Просмотров 6786. Ответов 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()
Посмотрите здесь:

Do while и cin.good - C++
Добрый день. Было дано задание вывести конкретные числа, с чем справился, но требуется возможность запустит программу заново ( как я понял,...

Как работает cin.get() - C++
Решил посмотреть как работает cin.get(). Тупо тянет символы из буфера. В конструкторе не нашёл &quot;привязки буфера к stdin&quot; или вызовов...

Как работает Cin.ignore() - C++
Дочитал до главы &quot;Потоки и файлы&quot; и с первого примера началось не понимание. Вот пример: #include &lt;iostream&gt; using namespace...

Как работает cin.ignore(), именно в том случае, когда он написан без параметров? - C++
Объясните, пожалуйста, как работает cin.ignore(), именно в том случае, когда написан без параметров заранее спасибо!

Не работает cin - C++
Здравствуйте. Плюсы только начал учить, так что просьба тухлыми яйцами не кидаться :) Делаю программу по заполнению дерева узлами, его...

Не работает 3й cin - C++
раз на раз вылезают исключения, не работает ввод cin порой,главное не весь ,а только последний, обычно,при волшебном изменении порядка...

Не работает cin - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; int main() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
414 / 389 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
21.02.2013, 15:29     как работает cin.good() #2
C++
1
if (cin>>var1 && cin.good())
Vourhey
Почетный модератор
6474 / 2249 / 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
Почетный модератор
6474 / 2249 / 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
Почетный модератор
6474 / 2249 / 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 - C++
#include &lt;iostream&gt; using namespace std; class Deposit{ private: string...

Не работает cin - C++
Вообщем дело такое, сделал x,y рандом, после они выводятся, я должен их ввести, если совпали попал, но cin не работает, как будто его и...

Cin.get не правильно работает - C++
насколько я понимаю cin.get() в таком использовании (без параметров и т.п.) должен возвращать код первой нажатой клавиши, а у меня при...

Cin.clear() не работает? - C++
Почему cin.clear() не работает как надо? ( не очищает поток ). Если мы вводим например 3 значения (123) то цикл срабатывает 3 раза. while...

Не работает cin.getline(buf, 20); - C++
Товарищи подскажите почему не работает cin.getline(buf, 20);? Проблема в том что я хочу ограничить ввод до 20 символов но оно не...


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

Или воспользуйтесь поиском по форуму:
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()
Ответ Создать тему
Опции темы

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