0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 9
1

При вводе в переменную нетипичного ей символа программа зацикливается

02.03.2014, 09:50. Показов 2692. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема в том, что если ввести в программу символ отличный от цифры то программа зацикливается, а необходимо чтобы вопрос задавался снова!
---
Испробовал уже все, не помогает даже создание указателей с последующим удалением. Может я что-то забыл или не так написал, подскажите пожалуйста. Искал везде, но видимо не хватает чего-то в коробушке додуматься =)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
No:
int *num = new int;
system("pause");
cout << "Введите количество добавляемых спортсменов: ";
if (cin >> *num)
{
    goto YES;
}
else
{
    delete num;
    goto NO;
}
//Продолжение программы
Yes:
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2014, 09:50
Ответы с готовыми решениями:

При вводе символа программа зацикливается
Я пытался создать программу, которая при вводе отрицательного или типа не int выводит ошибку и...

Программа зацикливается при вводе матрицы
Здравствуйте. Помогите, в программе какая то ошибка, не могу найти. Почему-то зацикливается при...

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

При вводе слишком большого числа программа зацикливается
При вводе слишком большого числа идет зацикливание(вроде так)помогите исправить #include...

3
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
02.03.2014, 09:59 2
Лучший ответ Сообщение было отмечено balizort как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
int n;
    while(true){
        cin >> n;
        if (cin.peek() == '\n'){                
            break;
        }
        else{
            cout <<"Ошибка ввода (ожидается целое число):"<<endl;
            cin.clear();   
            cin.ignore(cin.rdbuf()->in_avail());    
        } 
    }
например
1
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
02.03.2014, 10:03 3
Лучший ответ Сообщение было отмечено balizort как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    int num;
    while(!(std::cin >> num))
    {
        std::cin.clear();
        std::cin.sync();
    }
    std::cout << num;
    return 0;
}
1
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 9
02.03.2014, 10:44  [ТС] 4
Большое спасибо!
0
02.03.2014, 10:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2014, 10:44
Помогаю со студенческими работами здесь

Зацикливается программа при вводе буквы, которую уже вводили
Всем привет! Подскажите, пожалуйста, почему при вводе буквы, которую уже вводил, игра зацикливается...

Задание на ряды: программа зацикливается при вводе некоторых значений
Здравствуйте, решал вузовское задание &quot;на дом&quot;. Написал код. Однако при вводе некоторых значений...

При вводе в переменную букв, программа закицливается
При вводе букв с консоли, программа зацикливается и выводит: &quot;Enter the demension of the matrix:...

Зацикливается при вводе
Admin.h: #include&lt;string&gt; using namespace std; class Admin { string Login;//Логин...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru