Как записать в структуре строку с пробелами? - 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); // тут тоже

Объяснение кода листинга программы

  1. Вводится название фильма с помощью функции printf и gets.
  2. Значение переменной Films[j].name сохраняется введенное пользователем название фильма.
  3. Выводится запрос на ввод имени главного героя с помощью printf.
  4. Используя функцию scanf, значение переменной Films[j].actor заполняется введенным пользователем именем главного героя.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы