1、系统缓存
char ch1[10], ch2;
scanf("%s", ch1);
ch2 = getchar();
printf("ch1 = %s, ch2 = %c", ch1, ch2);
# 输入内容
zack
[回车]/[空格]
# 输出
ch1 = zack, ch2 =
在结束scanf的输入后,以回车结尾,导致回车读取缓存。getchar不再要求输入,直接使用缓存内容。正确写法如下:
char ch1[10], ch2;
scanf("%s", ch1);
fflush(stdin);
ch2 = getchar();
...