Как записать в структуре строку с пробелами? - C (СИ)
Формулировка задачи:
В структуре нужно записать строку с пробелами, но gets пропускает, а printf работает до пробела.
Листинг программы
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <windows.h>
- struct films
- {
- char name[60];
- char actor[60];
- int time;
- int price;
- };
- void read(struct films *Films, int i);
- void read(struct films *Films, int i)
- {
- for (int j = 0; j < i; j++)
- {
- printf("Введiть назву фільма\n");
- gets(&Films[j].name);
- printf("Имя главного героя\n");
- scanf("%s",&Films[j].actor);
- printf("Длина фильма\n");
- scanf("%d", &Films[j].time);
- printf("Стоимость диска\n");
- scanf("%d", &Films[j].price);
- }
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- struct films Films[2];
- read(Films, 2);
- printf("\n");
- _getch();
- return 1;
- }
Решение задачи: «Как записать в структуре строку с пробелами?»
textual
Листинг программы
- printf("Введiть назву фільма\n");
- gets(Films[j].name); // амперсенд не нужен
- printf("Имя главного героя\n");
- scanf("%s",Films[j].actor); // тут тоже
Объяснение кода листинга программы
- Вводится название фильма с помощью функции
printf
иgets
. - Значение переменной
Films[j].name
сохраняется введенное пользователем название фильма. - Выводится запрос на ввод имени главного героя с помощью
printf
. - Используя функцию
scanf
, значение переменнойFilms[j].actor
заполняется введенным пользователем именем главного героя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д