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

Пропускает инструкцию gets();

21.06.2015, 17:26. Показов 2421. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
using namespace std;
char Teleph[3][100];
char Name[3][100];
double Time[3],Salary[3],pay[3];
void output();
void NameTimeTeleph();
 
void output()
{
    int num;
    cout << "Введите номер рабочего: ";
    cin >> num;
    for(int i = 0; i < 3; i++)
    {
        if(num > 3)
        {
            cout << "Рабочий с этим номером не найден" << endl;
            break;
        }
        else if(i == (num-1))
        {
            cout << "Имя рабочего: " << Name[i] << endl;
            cout << "Номер телефона рабочего: " << Teleph[i] << endl;
            cout << "Оплата рабочему: " << pay[i] << endl;
        }
        else
        {
            cout << "Проверка базы данных..." << endl;
        }
    }
}
 
void NameTimeTeleph()
{
    for(int i = 0; i < 3; i++)
    {
        cout << "Введите имя " << i + 1 << " рабочего: ";
        gets(Name[i]);
        cout << "Введите номер телефона " << i + 1 << " рабочего: ";
        gets(Teleph[i]);
        cout << "Введите сколько дней работал " << i + 1 << " рабочий: ";
        cin >> Time[i];
        cout << "Введите зарплату " << i + 1 << " рабочего в месяц(30 дней): ";
        cin >> Salary[i];
        pay[i] = (Salary[i] / 30) * Time[i];
    }
}
int main()
{
    setlocale(0,"");
    int chouse;
    do
    {
    cout << "1 - Ввод информации" << endl;
    cout << "2 - Вывод информации" << endl;
    cout << "Ваш выбор: ";
    cin >> chouse;
    if(chouse == 1)
    {
        NameTimeTeleph();
    }
    else if(chouse == 2)
    {
        output();
    }
    }while(chouse == 1 || chouse == 2);
    system("pause");
    return 0;
}
Не дает вводить Имя рабочего, сразу переходит к вводу номеру телефона. Что не так? Помогите
Выводит:
Введите имя рабочего: Введите номер телефона 1 рабочего: _(и тут ожидание номера)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2015, 17:26
Ответы с готовыми решениями:

Неизвестная ошибка в коде (пропускает инструкцию с std::cin)
Сделал обыкновенный калькулятор.ИНОГДА,а чаще всего при неправильном введении числа пропускает функцию cin &gt;&gt; x; На скринах все...

Пропускает ввод данных в консоли. Не работает часть кода. Пропускает ввод фио
Добрый день! Помогите пожалуйста! В void add_dinamo() пропускает cout&lt;&lt;&quot;ФИО: \t&quot; ; cin.getline(b.fio, 49); а дальше...

Распишите инструкцию
Как мне через delphi7 (на компьютере1) подключиться к БД Paradox Table1.db (на компьютере2)???

3
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,030
Записей в блоге: 1
21.06.2015, 17:28
C++
1
(cin >> chouse).get();
и т.д. для чисел
0
 Аватар для LegchylinIlya
22 / 22 / 28
Регистрация: 22.05.2015
Сообщений: 55
21.06.2015, 17:30
Лучший ответ Сообщение было отмечено Y4enik как решение

Решение

Перед gets ставьте

C++
1
fflush(stdin);
Код:

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
#include <iostream>
using namespace std;
char Teleph[3][100];
char Name[3][100];
double Time[3],Salary[3],pay[3];
void output();
void NameTimeTeleph();
 
void output()
{
    int num;
    cout << "Введите номер рабочего: ";
    cin >> num;
    for(int i = 0; i < 3; i++)
    {
        if(num > 3)
        {
            cout << "Рабочий с этим номером не найден" << endl;
            break;
        }
        else if(i == (num-1))
        {
            cout << "Имя рабочего: " << Name[i] << endl;
            cout << "Номер телефона рабочего: " << Teleph[i] << endl;
            cout << "Оплата рабочему: " << pay[i] << endl;
        }
        else
        {
            cout << "Проверка базы данных..." << endl;
        }
    }
}
 
void NameTimeTeleph()
{
    for(int i = 0; i < 3; i++)
    {
        cout << "Введите имя " << i + 1 << " рабочего: ";
        fflush(stdin);
        gets(Name[i]);
        cout << "Введите номер телефона " << i + 1 << " рабочего: ";
        fflush(stdin);
        gets(Teleph[i]);
        cout << "Введите сколько дней работал " << i + 1 << " рабочий: ";
        cin >> Time[i];
        cout << "Введите зарплату " << i + 1 << " рабочего в месяц(30 дней): ";
        cin >> Salary[i];
        pay[i] = (Salary[i] / 30) * Time[i];
    }
}
int main()
{
    setlocale(0,"");
    int chouse;
    do
    {
    cout << "1 - Ввод информации" << endl;
    cout << "2 - Вывод информации" << endl;
    cout << "Ваш выбор: ";
    cin >> chouse;
    if(chouse == 1)
    {
        NameTimeTeleph();
    }
    else if(chouse == 2)
    {
        output();
    }
    }while(chouse == 1 || chouse == 2);
    system("pause");
    return 0;
}
0
2 / 2 / 0
Регистрация: 22.03.2015
Сообщений: 32
21.06.2015, 18:16  [ТС]
Спасибо!
Что делает fflush(stdin)?
Всегда без него работало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2015, 18:16
Помогаю со студенческими работами здесь

ищу инструкцию
нужна помощь - друзья отдали микроволновку Exquisit, которой не пользовались. может кто-то поделиться инструкцией?

Изменить инструкцию
Здравствуйте! Написана программа по проверке пароля. Мне нужно изменить её так, чтобы при вводе любого пароля программа принимала...

Переделать в инструкцию For..Next
Не подскажете как сделать тоже самое но с инструкцией For..Next Function ShowFolderList(folderspec) Dim fso, f, f1, fc, s ...

написать инструкцию
Написать инструкцию вывода значений переменных a,b иc (типаfloat) с пятью цифрами в целой части и тремя — в дробной. Значения должны быть...

STM32F100RB не выполняет инструкцию "IT NE"!?
Пример: MOV R0, #2 CMP R0, #2 IT NE MOVNE R0, #1 Последняя инструкция не должна выполняться, т.е. в R0 должно остаться 2,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru