c语言中,在int形和char形混输时如scanf("%d %c %c");,为什么%c前要加空格?

2025-04-13 01:12:01
推荐回答(1个)
回答1:

晕 还有人回答是为了好看
是这样的```在不加空格的情况下"%d%c%c",&a, &b , &c 当你输入“3空e空f” 你第一个是整形 自然会把你输入的数字给第一个a,你输入第二个是空格,会把这个空格当成字符赋值给b 你输入第三个是e,会把e赋值给c 这样程序就认为已经完成了赋值,而不会理会后面的"空f"
结果a=3,b=' ',c='e'
可以这样测试
#include
long main()
{
long a;
char b,c;
scanf("%d%c%c",&a, &b, &c); //输入“3空e空f”
printf("%c\n",c); //输出变量c为'e'
return 0;
}