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

Зацикливается при вводе

27.11.2015, 23:08. Показов 1345. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Admin.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<string>
 
using namespace std;
 
class Admin {
    string Login;//Логин администратора
    string Password;//Пароль администратора
public:
    Admin();//Конструктор класса
 
    void Check_User();//Функция добавления нового пользователя
 
    int Menu();//Меню администратора(Выбор)
    int Admin_Menu();//Меню администратора(Функция)
};
Admin.cpp:

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include"Admin.h"
#include"User.h"
#include"System.h"
#include"Spisok.cpp"
#include<iostream>
#include<fstream>
#include<string>
#include<conio.h>
 
using namespace std;
 
//Конструктор класса администратора
Admin::Admin()
{
    Login = "ArtArt"; 
    Password = "18101996Art"; 
}
 
//Функция меню для администратор(Выбор)
int Admin::Menu()
{
    bool Flag = false;
    int Vibor;
    while (Flag != true)
    {
        cout << "[1] - Проверка новых пользователей" << endl << "[2] - Удаление пользователя" << endl << "[3] - Добавление в парк автомобиля такси" << endl << "[4] - Редактирование автомобиля такси" << endl << "[5] - Удаление из парка автомобиля такси" << endl << "[6] - Просмотр таксопарка" << endl << "[7] - Обработка новых заказов" << endl << "[8] - Просотр заказов" << endl << "[9] - Назад" << endl << "Ваш выбор:";
        while (!(cin >> Vibor))
        {
            cout << "НЕКОРРЕКТНЫЙ ВВОД!" << endl << "[1] - Проверка новых пользователей" << endl << "[2] - Удаление пользователя" << endl << "[3] - Добавление в парк автомобиля такси" << endl << "[4] - Редактирование автомобиля такси" << endl << "[5] - Удаление из парка автомобиля такси" << endl << "[6] - Просмотр таксопарка" << endl << "[7] - Обработка новых заказов" << endl << "[8] - Просотр заказов" << endl << "[9] - Назад" << endl << "Ваш выбор:";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }
        if (Vibor > 0) Flag = true;
        else cout << "Выберите 1 или 2 или 3 или 4 или 5 или 6 или 7 или 8 или 9" << endl;
    }
    return Vibor;
}
 
//Функция меню администратора(Функция)
int Admin::Admin_Menu()
{
        while (1)
        {
            switch (Menu())
            {
            case 1:
            {
            this->Check_User();
            }
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 7:
                break;
            case 8:
                break;
            case 9: 
            {
                Main_Organisation ob;
                ob.Main_Enter();
            }
                break;
            default: cout << "Не верный выбор!Выберите 1 или 2 или 3 или 4 или 5 или 6 или 7 или 8 или 9!" << endl;
                break;
            }
        }
        return 0;
}
 
//Функция добавления нового пользователя
void Admin::Check_User()
{
    cout << "Пользователи подавшие заявку:" << endl;
 
    //Открытие файла с логином и паролем новых пользователей
    ifstream fin;//Создание объекта работы с файлом
    Spisok<User> l;//Создание списка заявок новых пользователей
    fin.open("New_User.txt");//Открытие файла
    if (!fin.is_open())//Проверка открытия файла
    {
        cout << "Файл не найден!" << endl;
        _getch();
        return;
    }
 
    //Считывание новых пользователей в список
    int i = 0;//Счетчик количества пользователей подавших заявку
    while (fin.good())
    {
        User ob;
        fin >> ob;
        ob.Set_ID(i + 1);
        l.WriteEnd(ob);
        i++;
    }
 
    //Вывод пользователей на экран
    l.Show();
 
}
main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<locale.h>
#include<iostream>
#include<string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
 
    Admin ob;
    ob.Admin_Menu();
 
    return 0;
}
Проблема:При вводе 1 происходит зацикливание.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.11.2015, 23:08
Ответы с готовыми решениями:

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

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

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

2
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
27.11.2015, 23:11
C++
1
2
3
4
5
6
7
User ob;
while (fin >> ob)
{
    ob.Set_ID(i + 1);
    l.WriteEnd(ob);
    i++;
}
1
-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
27.11.2015, 23:53  [ТС]
Цитата Сообщение от zss Посмотреть сообщение
User ob;
while (fin >> ob)
{
* * ob.Set_ID(i + 1);
* * l.WriteEnd(ob);
* * i++;
}
Всё равно зацикливается.

Добавлено через 38 минут
Цитата Сообщение от artart96 Посмотреть сообщение
Сообщение от zss
User ob;
while (fin >> ob)
{
* * ob.Set_ID(i + 1);
* * l.WriteEnd(ob);
* * i++;
}
Всё равно зацикливается.
Нашел ошибку - неправильная перегрузка потока была при считывание из файла в объект.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2015, 23:53
Помогаю со студенческими работами здесь

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

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

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

Класс "creditCard", программа зацикливается на вводе данных
прога не работает корректно! зацикливается на вводе данных и не выходит на exit #include &lt;iostream&gt; #include&lt;string.h&gt; ...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал
Составить программу, которая при вводе символа с клавиатуры выво-дит &quot;латинская буква&quot; при вводе латинской буквы и &quot;не латинская...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru