Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180

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

04.01.2012, 23:14. Показов 1573. Ответов 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();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2012, 23:14
Ответы с готовыми решениями:

Как избежать ввода недопустимых символов?
Написал тут функцию. При вводе целых чисел все нормально работает. Если пользователь вводит какой-либо символ, то программа зацикливается....

Как избежать незаконченного ввода в DateTimePicker?
Всем здравствуйте. Для простоты возьмём компонент TDateTimePicker с свойствами Kind = dtkTime и Format = mm. Пусть изначально в...

Как избежать ручного ввода формулы в каждую ячейку
Здравствуйте. Сразу скажу - я полный ноль в программировании в самих таблицах, в VBA кое-что смыслю (хобби - Visual Basic 6). Не...

7
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
04.01.2012, 23:15
Выпилить goto, очевидно.
0
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
04.01.2012, 23:17  [ТС]
goto нужно для повторного ввода. даже если убрать goto все равно вопрос останется как избежать зацикливание ввода не числа?
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
04.01.2012, 23:19
считать в символ и перевести в число
0
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
04.01.2012, 23:20
goto не нужно практически никогда(по крайней мере, в плюсах). Используй while.
По вопросу: failbit
0
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
04.01.2012, 23:21  [ТС]
alkagolik, как именно?
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
04.01.2012, 23:28
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, конечно желательно убрать
}
//...
1
 Аватар для romedal
55 / 55 / 9
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
05.01.2012, 00:04
Цитата Сообщение от .Malek. Посмотреть сообщение
Как избежать зацикливание ввода не числа?
Через исключение...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2012, 00:04
Помогаю со студенческими работами здесь

Зацикливание ввода
Народ подскажите в чем может быть дело, если ввести не корректные данные в представленный код, например два слова через пробел, то ввод...

При использовании read или readln строка ввода опускается все ниже-ниже. Как-то этого избежать?
При каждом использовании будь то read или readln строка ввода опускается все ниже-ниже, возможно как-то это избежать?

Как числа из поля ввода в программе отправить в поле ввода браузера?
Есть обработчик кнопки ,в поле ввода- числа. Как из поля программы отправить эти числа в нужное поле браузера????

Избежать ввода не цифр в TextBox
при вводе цифр все нормально но как только в textbox ввожу слово то он выдает ошибку. Как исправить? DataSet ds; string...

С клавиатуры вводятся целые числа. Признак конца ввода – ноль. Записать в строку эти числа как вещественные в нормализов
Нельзя использовать функции преобразования типов. Напишите вот эту часть задачи: С клавиатуры вводятся целые числа. Признак конца ввода...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru