Я использую getchar(), чтобы читать символы и помещать их в таблицу, а также scanf, чтобы получить целое число.scanf получает вход ранее excecuted getchar()
Проблема с scanf() заключается в том, что он не ждет ввода пользователя, но считывает из буфера последний символ, указанный в предыдущей строке, с помощью getchar().
Я пробовал sscanf, fflush (stdin); и т. д., но я все еще придерживаюсь такого же поведения.
#include <stdio.h>
#include <stdlib.h>
main()
{
int i, choice, tmp_day, tmp_month;
char name[5];
printf("insert choice(1-3):\n");
scanf("%d",&choice);
printf("name: ");
for (i=0;i<5;i++) name[i]=getchar();
name[5] = '\0' ;
printf("day (1-31): ");
scanf("%d",&tmp_day);
printf("month (1-12): ");
scanf("%d",&tmp_month);
printf("\n%d %d", tmp_day, tmp_month);
}
Любая идея?
Заранее спасибо.
название ассоциации [5]; -> char name [6]; index 0..5 = size is 6 – BLUEPIXY