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

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

Войти
Регистрация
Восстановить пароль
 
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
#1

Как избежать зацикливание ввода не числа? - C++

04.01.2012, 23:14. Просмотров 755. Ответов 7
Метки нет (Все метки)

Как избежать зацикливание ввода не числа? чтобы при вводе символа не уходил в бесконечный цикл.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <conio.h>
int main()
{
    int NumberOfElements;
    clrscr(); //clrscr очищает текущее текстовое окно "conio"
    cout<<"Postroit' dvoichnoe derevo poiska iz simvolov. Vse jelementy levogo poddereva zamenit' na simvol '0'. Rezul'tat vyvesti na jekran. Opredelit' glubinu dereva."<<endl;
    mistake: cout<<"Enter the number of elements in the tree(1-10): ";
    cin>>NumberOfElements;
        if(NumberOfElements<=0 || NumberOfElements>10)
        {
            cout<<"A mistake! Invalid range. Please try again!";
            goto mistake;
        }
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2012, 23:14     Как избежать зацикливание ввода не числа?
Посмотрите здесь:

Разложение числа на простые множители (упрощенная). Зацикливание? - C++
Добрый вечер. Написал небольшой код для разложения небольших чисел на простые цифры. По умолчанию число, которое подается на ввод, делится...

Задачка про зацикливание при вводе не числа (решено но нужна консульт) - C++
Все решено ошибка найдена если есть идеи могут предложить лучший алгоритм int NumberOfElements=0; //глобальная переменная int...

Зацикливание в меню, как исправить? - C++
Скажите что нужно изменить, чтобы при вызове из &quot;менюшки&quot;, функция не повторялась бесконечно. // #include &quot;StdAfx.h&quot; #include...

Как определить зацикливание процесса? - C++
Собственно, сабж в названии. Как определить, что некоторая программа другого процесса зациклилась? Или, допустим, имея свой процесс и...

Вывести на экран сначала числа < 0, затем числа > 0 в порядке их ввода. Использовать очередь - C++
Ввести n целых чисел. Вывести на экран сначала числа &lt;0, затем числа &gt;0 в порядке их ввода. Использовать очередь. Пример: ввод: -2 3...

Как наиболее быстро определить зацикливание связанного списка? (a => b => c => d => e => a) - C++
You have a pointer to some element in a linked list (a =&gt; b =&gt; c =&gt; d =&gt; e). What is the fastest way to tell if there is a loop in the...

как избежать зацикливания - C++
Подскажите пожалуйста, как избежать зацикливания программы про вводе буквы вот в такой менюшке). Если я ввожу неправильную цифру...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
04.01.2012, 23:15     Как избежать зацикливание ввода не числа? #2
Выпилить goto, очевидно.
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
04.01.2012, 23:17  [ТС]     Как избежать зацикливание ввода не числа? #3
goto нужно для повторного ввода. даже если убрать goto все равно вопрос останется как избежать зацикливание ввода не числа?
alkagolik
Заблокирован
04.01.2012, 23:19     Как избежать зацикливание ввода не числа? #4
считать в символ и перевести в число
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
04.01.2012, 23:20     Как избежать зацикливание ввода не числа? #5
goto не нужно практически никогда(по крайней мере, в плюсах). Используй while.
По вопросу: failbit
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
04.01.2012, 23:21  [ТС]     Как избежать зацикливание ввода не числа? #6
alkagolik, как именно?
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,909
04.01.2012, 23:28     Как избежать зацикливание ввода не числа? #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <limits>
 
//...
 
if(!(cin>>NumberOfElements))
{
    cin.clear();
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    cout<<"Please try again!\n";
    goto mistake; // goto, конечно желательно убрать
}
//...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 00:04     Как избежать зацикливание ввода не числа?
Еще ссылки по теме:

Как избежать такую конструкцию? - C++
#include &lt;iostream&gt; #include &lt;vector&gt; class Foo { public: Foo() { x = 0; }

Бесконечный цикл (как избежать?) - C++
Программа должна принимать только одно из трёх значений переменной 'destiny'. Если вводят любое другое значение, программа должна повторять...

Как избежать ошибок линковщика? - C++
Я только-только начал изучать С++(Borland). Взял первый попавшийся пример из helpa - printf #include &lt;stdio.h&gt; #include &lt;string.h&gt; ...

Как избежать использование глобальных объектов - C++
Есть два класса. В первом классе должен быть метод, который работает с объектами второго класса. Все получается, если создавать глобальные...

Как избежать использования кучи проверок? - C++
В общем есть файл конфига, в котором хранятся переменные, так вот, я хотел бы узнать, можно ли избежать кучи проверок, ведь при загрузке...


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

Или воспользуйтесь поиском по форуму:
romedal
54 / 54 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
05.01.2012, 00:04     Как избежать зацикливание ввода не числа? #8
Цитата Сообщение от .Malek. Посмотреть сообщение
Как избежать зацикливание ввода не числа?
Через исключение...
Yandex
Объявления
05.01.2012, 00:04     Как избежать зацикливание ввода не числа?
Ответ Создать тему
Опции темы

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