scanf读字符的坑
作者:互联网
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( )消掉。
标签:字符,scanf,char,printf,缓冲区,换行符,码值 来源: https://www.cnblogs.com/godex/p/16684944.html