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

Зацикливание программы при вводе некорректных данных

25.11.2011, 01:19. Показов 2616. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Я совсем новенький в программировании на С++ (в школе чуток увлекался Бейсиком, но забросил). Три дня назад решил освоить С++. Спросите зачем? Та просто так, для общего развития, мало ли, в жизни пригодится. И вот написал свою ПЕРВУЮ программу (нет, это не "Hello World!") с использованием цикла do ... while. У всех переменных (их всего две) тип integer. Если переменной задать не целое число (cin>>nArg2, а символ или строку, цикл улетает в бесконечность. С переменными типа char и string я еще работать не умею, но это дело наживное). Ниже приведу код.

Добавлено через 23 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
#include<iostream.h>
#include<locale.h>
int main(int argc, char* pszArgs[])
{
    setlocale(LC_ALL,"Rus");
    int nArg1=26;
    int nArg2;
    do
    {
    cout<<"Сколько мне лет?: \n";
    cin>>nArg2;
    if (nArg1 == nArg2)
    {
                 cout<<"Малацца, бро! Идем бухать!\n";
    }
                 else
                 {
                     cout<<"лососни тунца!\n";
                 }
    }while(nArg1 != nArg2);
                 cin>>nArg1;
    return 0;
}
 Комментарий модератора 
Код выделяем тегами!

 Комментарий модератора 
Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос ответят.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2011, 01:19
Ответы с готовыми решениями:

Обработка исключений при вводе некорректных данных
День добрый, начал разбираться с исключениями, пока не совсем понимаю в чем их удобство и зачем они нужны, какие преимущества и т.д... но...

Программа зацикливается при вводе некорректных данных
Доброго дня. Уже искал по форуму, нашел много похожих тем, но предложенные там решения, в основном, не срабатывают. А код, предлагаемый...

Обработку исключений при вводе некорректных данных
#include &lt;iostream&gt; #include &lt;signal.h&gt; using namespace std; class Student{public: string Status,Speciality,Name,LName; ...

3
Заблокирован
25.11.2011, 01:28
curseyouall,

Я думаю, происходит следующее. Когда вы вводите букву, то операция ввода завершается с ошибкой, так как не встретила цифры. При этом ваш введенный символ остался в буфере ввода. Затем итерация цикла повторяется. Операция ввода видет, что буфер не пуст (там находится ваш символ), и пытается снова прочитать число. Опять возникает ошибка, и все повторяется заново. Вам надо делать различные проверки после вывода, как, например, cin.good() и пропускать символы, которые не являются цифрой.
1
curseyouall
25.11.2011, 01:48
Стыдно признаться, но я учу программирование по книжке "С++ для чайников". А хотя... Главное начать, правда?
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
25.11.2011, 01:54
curseyouall, почитайте про std:isdigit
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2011, 01:54
Помогаю со студенческими работами здесь

Зацикливание программы при вводе
Добрый день. У меня почему то происходит зацикливание программы при вводе строки с пробелами. Есть структураstruct sklad { char...

Зацикливание приложения при вводе в cin данных с пробелом
Есть такой код ( курсовой проект, не суть). Проблема такова: при вводе в переменную vak значения с пробелом приложение работает...

Зацикливание при вводе из файла
требуется ввести из файла в вектор данные типа float. программа зацикливается при выводе целой части вещественного числа. #include...

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

Какое исключение генерировать при вводе некорректных данных
Какое исключение генерировать при вводе неккорекных данных, например в переменную типа int пытались ввести текст и сообщить что вот...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru