Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 2 / 1
Регистрация: 14.09.2016
Сообщений: 492
1

При вводе не числа, программа уходит в бесконечный цикл

28.01.2018, 03:09. Показов 1289. Ответов 3
Метки нет (Все метки)

Помогите исправить, даже не хнаю как исправить... Если написать не число, а букву допустим, так тогда циклом начинает флудить текстом. И так во всех cin.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <conio.h>
 
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    system("mode con cols=100 lines=40");
 
    setlocale(LC_ALL, "Russian");
    int ats, skaicius, kuris;
    while(true)
    {
        cout << "Задача угадать задуманное число.\n" << endl;
        cout << "Сначало выберите, кто напишет число, которое вы будите угадывать?\n\nнашишите \"1\", если вы хотите, чтоб число сгенерировал компьютер.\nНапишите \"2\", если вы хотите, чтоб число написал человек.\nНапишите \"3\", если хотите выйти из преложения: ";
        cin >> kuris;
        if(kuris == 3)
        {
            exit(0);
        }
        if(kuris == 1)
        {
            srand (time(0));
            int i = rand()%100;
            system("cls");
            cout << "Я загадал число от 0 до 100, какое?" << endl;
            while (true)
            {
                int j;
                cin >> j;
                if (i < j)
                {
                    cout << "Мое число меньше. Пробуй ещё раз:" <<endl;
                }
 
                else if (i > j)
                {
                    cout << "Мое число больше. Пробуй ещё раз:" << endl;
                }
                else
                {
                    system("cls");
                    cout << "Ура!!! Ты угадал - " << i << ".\n\nНажмите Enter чтобы продолжить.\n***********************************************************************************\n"<<endl;
                    break;
                }
            }
            getch(); 
        }
 
 
        else if(kuris== 2)
        {
            system("cls");
            cout << "Хорошо. Теперь, человек №1 должен ввести число, которое другой человек будет угадывать.";
            cin >> ats;
            system("cls"); 
            cout << "Хорошо. Теперь, человек №2 должен ввести своё число и угадать число человека №1.";
            while(true)
            {
                cin >> skaicius;
 
                if (ats < skaicius)
                {
                    cout << "Моё число меньше. Пробуй ещё раз: " << endl;
                }
 
 
                else if(ats > skaicius)
                {
                    cout << "Моё число больше. Пробуй ещё раз: " << endl;
                }
                else
                {
                    system("cls");
                    cout << "Ура!!! Ты угадал - " << ats << ".\n\nНажмите Enter чтобы продолжить.\n***********************************************************************************\n"<<endl;
                    break;
                }
            }
            getch();
 
 
        }
        else
        {
            system("cls");
            cout << "**************************************************************\nНе правильное число! Внимательно прочитайте, что нужно ввести.\n**************************************************************\n" << endl;
        }
    }
    getch();
    return 0;
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2018, 03:09
Ответы с готовыми решениями:

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt;...

Объяснить почему при заполнении матрицы программа уходит в бесконечный цикл
#include &lt;iostream&gt; using namespace std; int main() { int mas; for (int i = 0; i &lt; 3;) {...

Метод Ньютона - программа уходит в бесконечный цикл
Подскажите где туплю, уже недели две над этой прогой сижу, а оно всё не работает хоть убей.......

Почему цикл на при 1 уходит в бесконечный цикл?
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int...

3
25 / 25 / 14
Регистрация: 29.09.2014
Сообщений: 165
28.01.2018, 03:57 2
Лучший ответ Сообщение было отмечено Terminator004 как решение

Решение

например так

C++
1
2
3
4
if (!cin.good()) {
cout << "Error input!! you wrote the char instead of a number\n";
exit(0);
}
Кликните здесь для просмотра всего текста
Задача угадать задуманное число.

Сначало выберите, кто напишет число, которое вы будите угадывать?

нашишите "1", если вы хотите, чтоб число сгенерировал компьютер.
Напишите "2", если вы хотите, чтоб число написал человек.
Напишите "3", если хотите выйти из преложения: арварвар
Error input!! you wrote the char instead of a number
Для продолжения нажмите любую клавишу . . .
1
3 / 2 / 1
Регистрация: 14.09.2016
Сообщений: 492
28.01.2018, 04:12  [ТС] 3
Цитата Сообщение от CurrentUser Посмотреть сообщение
например так
C++Выделить код
1
2
3
4
if (!cin.good()) {
cout << "Error input!! you wrote the char instead of a number\n";
exit(0);
}
Хорошо, спасибо. Я просто под каждым cin поставил эту проверку.
0
25 / 25 / 14
Регистрация: 29.09.2014
Сообщений: 165
28.01.2018, 05:41 4
Напишите функцию угадывания числа и передавайте в нее ввод и кто должен угадывать , сократите код в раза два )))
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2018, 05:41

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

Найти и исправить ошибки в коде (программа уходит в бесконечный цикл)
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { int n,k,s; float...

Объяснить почему программа уходит в бесконечный цикл (связные списки)
Всем привет. Собрал связанный список, он работает, но при вводе типа char, программа уходит в...

Бесконечный цикл при вводе букв
Написал простую программку, в которой считается площадь, высота и диагонали параллелограмма. Через...


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

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

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