我使用 getchar() 来读取字符并将它们放在桌子上,以及使用 scanf 来获取整数。
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);
}
任何想法?
提前致谢。