Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 14.11.2019
Сообщений: 42
1

gets_s не работает

19.08.2020, 20:40. Показов 1053. Ответов 3

Здравствуйте)
В данном участке кода я записываю в структуру инфу. name - это массив char из 50 символов. По идее я должен вводить в массив до нажатия Enter, но прога не дает мне ввести нужную инфу, а сразу говорит вводить номер группы. Через cin ввод тоже не получается - тогда прога начинает генерировать бесконечные "Номер группы: Год рождения: Номер группы: Год рождения: ". Что делать с gets или чем лучше заменить? Заранее спасибо)
C++
1
2
3
4
5
6
7
8
9
10
    cout << "Имя: ";
    gets_s(h->name);
    do {
        cout << "Номер группы: ";
        cin >> h->group;
    } while (h->group < 0);
    do {
        cout << "Год рождения: ";
        cin >> h->birthyear;
    } while (h->birthyear < 0);
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2020, 20:40
Ответы с готовыми решениями:

Не работает gets_s()
Почему не работает gets_s()? Как исправить? Работаю в Visual Studio 2015. #include &lt;iostream&gt;...

почему в функции add не работает gets_s?
/* Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать...

Проблемы с gets_s
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; using...

Gets_s пропускает ввод
пропускает ввод фамилии,почему? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

3
С чаем беда...
Эксперт CЭксперт С++
9263 / 4762 / 1289
Регистрация: 18.10.2014
Сообщений: 10,841
19.08.2020, 20:42 2
Лучший ответ Сообщение было отмечено kofeek как решение

Решение

Цитата Сообщение от kofeek Посмотреть сообщение
Что делать с gets или чем лучше заменить?
Зачем заменять? У вас все работает правильно, так как и должно. Лечить нужно источник проблемы, а не последствия.

Распространенные ошибки
1
0 / 0 / 0
Регистрация: 14.11.2019
Сообщений: 42
19.08.2020, 23:11  [ТС] 3
Сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
        cin.ignore(1);
    cout << "Имя: ";
    gets_s(h->name);
    do {
        cout << "Номер группы: ";
        cin >> h->group;
    } while (h->group < 0);
    do {
        cout << "Год рождения: ";
        cin >> h->birthyear;
    } while (h->birthyear < 0);
Ввод у меня находится в цикле, на второй раз ввод останавливается. Прога сама не вылетает, просто на новой строке мигающий курсор.

Добавлено через 2 часа 10 минут
Сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
        cin.ignore(1);
    cout << "Имя: ";
    gets_s(h->name);
    do {
        cout << "Номер группы: ";
        cin >> h->group;
    } while (h->group < 0);
    do {
        cout << "Год рождения: ";
        cin >> h->birthyear;
    } while (h->birthyear < 0);
Ввод у меня находится в цикле, на второй раз ввод останавливается. Прога сама не вылетает, просто на новой строке мигающий курсор.

ОТБОЙ, Я САМ НАПОРТАЧИЛ
0
3363 / 1915 / 368
Регистрация: 09.09.2017
Сообщений: 7,804
20.08.2020, 10:00 4
Цитата Сообщение от kofeek Посмотреть сообщение
Что делать с gets или чем лучше заменить?
Лучше всего заменить на стандартную (в отличие от gets_s) и безопасную (в отличие от gets) функцию fgets.
C
1
2
char buffer[100];
fgets(buffer, 99, stdin);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2020, 10:00

Программа игнорирует gets_s
Приветствую, проблема в функции readn, программа не дает возможности ввести название файла, откуда...

В чем различия функций gets() и gets_s()
В ходе изучения с++ столкнулся с проблемой, а именно с тем что компилятор (Visual Studio 2017) не...

Вылетает при ввод gets_s!
Вылетает при компиляции, уже час не знаю что делать. Я думаю это связанно с этими scanf_s и gets_s...

Функции gets_s, printf_s и другие с подчеркиванием
Я так понимаю, что все данные функции появились в Visual Studio и являются улучшенным вариантом их...

После считывания cin не считывается gets_s
часть кода, где после cin на консоли должен был быть ввод с помощью get_s но компилятор пропустил...

Почему цикл FOR пропускает первый ввод с клавиатуры (gets_s)?
printf(&quot;Введите подряд числа от того (имя - 1, фамилия - 2, отчество - 3, возраст - 4, должность -...


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

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

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