Как считать в структуру возвращаемую переменную? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер, дамы и господа! Никак не могу понять. Есть структура.
typedef struct Data{
    char name[30];
    int  year[4];
}Data;
Есть функция inputstt("\n\tEnter a year: ", 4);
int inputstt(char *message, int count){
    
    char input[256];
    
    while (1)
    {
        printf(message);
        fgets(input, 256, stdin);
        input[strlen(input)-1] = 0;
         if ((strlen(input) > count) || (strlen(input) < count)){
            printf("\nLength must be = 4. Try again: ");
            continue;
        }
        
        int i, not_digit = 0;
        
        for (i=0; input[i] != '\0'; i++){
            if (!isdigit(input[i]))
            {
                not_digit = 1;
                printf ("\nYou would have to enter the number. Try again: ");
                break;
            }
        }
        if (not_digit)
            continue;
    return atoi(input);
        }
}
И вот функция возвращает значение. А как вогнать его в структуру? Записать надо вот так: metro->year

Решение задачи: «Как считать в структуру возвращаемую переменную?»

textual
Листинг программы
Data dt;
dt.year[0]=inputstt("\n\tEnter a year: ", 4);

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

  1. Объявление переменной типа data dt
  2. Присваивание значения переменной dt.year[0] с помощью функции inputstt
  3. Функция inputstt запрашивает у пользователя ввод года и возвращает его в виде строки
  4. В качестве аргумента функции inputstt передается строка \n\tEnter a year:
  5. Число 4 передается как второй аргумент функции inputstt и определяет максимальное количество символов, которые функция будет ожидать от пользователя
  6. Значение переменной dt.year[0] присваивается результату функции inputstt
  7. Результат функции inputstt представляет собой строку, которая была введена пользователем
  8. Присваивание значения переменной dt.year[0] завершено

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

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