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

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

Войти
Регистрация
Восстановить пароль
 
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
#1

Cin зацикливание - C++

22.12.2013, 17:31. Просмотров 368. Ответов 5
Метки нет (Все метки)

Здравствуйте, столкнулся с такой проблемой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int a;
    bool b = true;
    while(b)
    {
        cout << "\nEnter value" << endl;
        cin >> a;
        if(a > 0)
            b = false;
        else
            cout << "\nerror";
    }
    return 0;
Если ввести ноль, то повторяем ввод, но если ввести какой нибудь символ, то программа бесконечно выводит "Enter value", хотя значение a при этом 0. В чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2013, 17:31     Cin зацикливание
Посмотрите здесь:

Cin.get() зацикливание while() - C++
Вот такой вот код... cout &lt;&lt; &quot;Введите размер 1-й матрицы: &quot;; while (!(cin &gt;&gt; N1 &gt;&gt; M1)) { system(&quot;cls&quot;); cin.clear(); ...

зацикливание - C++
Не выдает нужного результата происходит зацыкливание // wer.cpp : Defines the entry point for the console application. // ...

Зацикливание - C++
помогите исправить ошибку пожалуйста! у меня зацикливается она! # include &quot;stdafx.h&quot; # include &lt;stdio.h&gt; #include &lt;time.h&gt; ...

зацикливание в C++ - C++
Подскажите, пожалуйста, как зациклить программу, чтобы при попытке набрать другой символ выдавалось сообщение с ошибкой и происходило...

Зацикливание - C++
Вобщем, проверял уже 100 раз. Думаю причина в моем неумении работать с файлами. Почти все переменные, объявленные в этой процедуре,...

Зацикливание - C++
Помогите разобраться while (point &gt;= min &amp;&amp; point &lt;= max || prodal &gt;= min &amp;&amp; prodal &lt;= max) { cin &gt;&gt; point; sobestoimostb = point...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
George_Amberson
9 / 9 / 10
Регистрация: 13.11.2013
Сообщений: 35
22.12.2013, 17:35     Cin зацикливание #2
Цитата Сообщение от scrat2013 Посмотреть сообщение
Если ввести ноль, то повторяем ввод, но если ввести какой нибудь символ, то программа бесконечно выводит "Enter value", хотя значение a при этом 0. В чем может быть проблема?
Программа должна считывать целочисленную переменную
Цитата Сообщение от scrat2013 Посмотреть сообщение
int a;
, а вы вводите символ.Для этого измените
Цитата Сообщение от scrat2013 Посмотреть сообщение
int a;
на
C++
1
char a;
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
22.12.2013, 17:40  [ТС]     Cin зацикливание #3
А как мне проверять введена цифра или символ? Мне нужно это для того, чтобы когда пользователь неправильно вводит число в двоичной системе счисления повторить ввод, с числами отличными от 0 или 1 все понятно, но как определить, что был введен еще и символ и повторить ввод? Заранее благодарен.
George_Amberson
9 / 9 / 10
Регистрация: 13.11.2013
Сообщений: 35
22.12.2013, 17:49     Cin зацикливание #4
Цитата Сообщение от scrat2013 Посмотреть сообщение
А как мне проверять введена цифра или символ? Мне нужно это для того, чтобы когда пользователь неправильно вводит число в двоичной системе счисления повторить ввод, с числами отличными от 0 или 1 все понятно, но как определить, что был введен еще и символ и повторить ввод? Заранее благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char buff[20];
    int a;
    bool b = true;
    while(b)
    {
        cout << "\nEnter value" << endl;
        cin >> buff;
        a = atoi(buff);
        if(a > 0)
            b = false;
        else
            cout << "\nerror";
    }
    return 0;
Не совсем корректный, но в целом рабочий способ
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
22.12.2013, 17:55  [ТС]     Cin зацикливание #5
Большое спасибо! А как будет выглядеть корректный способ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 18:07     Cin зацикливание
Еще ссылки по теме:

Зацикливание - C++
Всем доброго времени суток. Написал прогу по определению кратности второго числа относительно первого. // Кратность второго числа по...

Зацикливание в программе - C++
Задание: Протабулировать функцию, использовав цикл с предусловием. Аргументы и результаты вывести на экран в виде таблицы (для значений...

сделать зацикливание - C++
Всем привет, нужна помощь :).Шифр цезаря. Нужно сделать так, что бы например при сдвиге на 30, программа начинала сдвигать по новой, т.е....

Зацикливание Функции - C++
После подсчёта спрашивать : &quot;Повторить ? (y/n)&quot;, если &quot;y&quot; то в начала цикла с запросом сколько часов..если &quot;n&quot; то выход #include...

Зацикливание в программе - C++
Здравствуйте! Помогите, пожалуйста. У меня в программе требует проверить, нечетное ли положительное число введено. И пока не введут...

Зацикливание класса - C++
int readmass(char* file) { FILE *mass =fopen(file,&quot;r&quot;); if( mass==NULL) { cout&lt;&lt;&quot;Не возможно открыть файл&quot;&lt;&lt;endl; ...


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

Или воспользуйтесь поиском по форуму:
George_Amberson
9 / 9 / 10
Регистрация: 13.11.2013
Сообщений: 35
22.12.2013, 18:07     Cin зацикливание #6
Цитата Сообщение от scrat2013 Посмотреть сообщение
Большое спасибо! А как будет выглядеть корректный способ?
Оставляю это вам на размышление
Я описал способ, который знаю, для ваших целей он полностью корректен
Yandex
Объявления
22.12.2013, 18:07     Cin зацикливание
Ответ Создать тему
Опции темы

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