int a = 0;
int b = 0;
char c = 'a';
char arr[20] = { 0 };
scanf("%d", &a);
//int ch1 = getchar();
scanf("%d", &b);
int ch2 = getchar();
scanf("%c", &c);
//int ch3 = getchar();
scanf("%s", arr);
printf("%d\n", a);
printf("%d\n", b);
printf("%c\n", c);
printf("%s\n", arr);
为什么只需要一个getchar就可以消除这个代码的缓冲区问题呢?我的理解是每次使用完scanf就需要使用一次getchar去消除缓冲区的问题。
除了
%c
,问题里其它的都会自动跳过空白字符http://port70.net/~nsz/c/c11/...