int main()
{
char a = 0;
char b = 0;
scanf("%c", &a);
scanf("%c", &b);
printf("a=%c,b=%c", a, b);
return 0;
}
输出结果:
输出b的ascii码值:
printf("a=%c,b=%d", a, b);
输出结果:
a=q,b=10——b=10ascii码值是换行符’/n’,scanf缓冲区(q+回车键(/0)),
结论:scanf读取单个字符会在缓冲区按顺序读写下去包括回车换行’/n’,如果要消除换行符可用getchar( )消掉。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288857.html