scanf读字符的坑


int main()
{
	char a = 0;
	char b = 0;
	scanf("%c", &a);
	scanf("%c", &b);
	printf("a=%c,b=%c", a, b);
	return 0;
}

输出结果:

scanf读字符的坑

输出b的ascii码值:

printf("a=%c,b=%d", a, b);

输出结果:

scanf读字符的坑

a=q,b=10——b=10ascii码值是换行符’/n’,scanf缓冲区(q+回车键(/0)),

结论:scanf读取单个字符会在缓冲区按顺序读写下去包括回车换行’/n’,如果要消除换行符可用getchar( )消掉。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288857.html

(0)
上一篇 2022年9月11日
下一篇 2022年9月11日

相关推荐

发表回复

登录后才能评论