Как считать в структуру возвращаемую переменную? - C (СИ)
Формулировка задачи:
Добрый вечер, дамы и господа! Никак не могу понять. Есть структура.
Есть функция
inputstt("\n\tEnter a year: ", 4);
И вот функция возвращает значение. А как вогнать его в структуру? Записать надо вот так: metro->year
typedef struct Data{
char name[30];
int year[4];
}Data;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);
}
}Решение задачи: «Как считать в структуру возвращаемую переменную?»
textual
Листинг программы
Data dt;
dt.year[0]=inputstt("\n\tEnter a year: ", 4);
Объяснение кода листинга программы
- Объявление переменной типа data
dt - Присваивание значения переменной
dt.year[0]с помощью функции inputstt - Функция inputstt запрашивает у пользователя ввод года и возвращает его в виде строки
- В качестве аргумента функции inputstt передается строка
\n\tEnter a year: - Число 4 передается как второй аргумент функции inputstt и определяет максимальное количество символов, которые функция будет ожидать от пользователя
- Значение переменной
dt.year[0]присваивается результату функции inputstt - Результат функции inputstt представляет собой строку, которая была введена пользователем
- Присваивание значения переменной
dt.year[0]завершено