...混输时如scanf("%d %c %c");,为什么%c前要加空格?

发布网友

我来回答

4个回答

热心网友


还有人回答是为了好看
是这样的```在不加空格的情况下"%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;
}

热心网友

C语言就是这么要求的,scanf函数使用空白字符分割输入的数据,空白字符包括空格、换行、tap。

热心网友

不加空格的话就要再输完int型的值后回车,再输入char型的值
加空格就是把回车换成空格而已

热心网友

可能是因为加了空格,输出比较好看(字母和数字被隔开),,编代码时并不一定要加空格的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com