У меня есть программа, в которой люди вводят информацию в массив структур. Информация включает название города, номер дня и температуру Фаренгейта. По какой-то причине он пропускает ту часть, где вы вводите название города.Не удается ввести строку в массив struct
void input_TempInfo(struct TempInfo * arr, int size)
{
int i, k;
for (i = 0, k = 0; k < size; i++, k++)
{
printf("\nEnter the city: ");
while (getchar() != '\n') << **Edit**
;
while (((arr[k].city[i] = getchar()) != '\n') && (i < MAXCHARS))
i++;
arr[k].city[i] = '\0';
do
{
printf("\nEnter the day: ");
scanf("%i", &arr[k].day);
if (arr[k].day < 1 || arr[k].day > 366)
{
printf("\nInvalid day number. Type another: ");
scanf("%i", &arr[k].day);
}
} while (arr[k].day < 1 || arr[k].day > 366);
printf("Enter a temperature in Fahrenheit: ");
scanf("%lf", &arr[k].fahr);
arr[k].cels = (arr[k].fahr - 32) * 5/9;
}
}
Мне не разрешено использовать «scanf()» моему учителю это не нравится. –
@JordanLindsay: обновленный ответ без использования 'scanf' –