%c和%s用scanf输入时缓存区如何变化?
其他问答
1
#include<stdio.h>
int main()
{
char ch;
char a[20] = {0};
scanf("%c", &ch);
scanf("%s", a);
printf("%c\n", ch);
printf("%s",a);
return 0;
}
这样一段代码,我以为输入一个字符后回车,再输入字符串的结果是:那个回车留在缓冲区里,之后赋给了字符串的第一个字符。但是结果并不是这样:
结果并没有受到影响,此处开始我就不明白输入字符之后的缓存区里是怎么一回事了? 希望有人能给出解释,谢谢!
发表回复