注册 登录
编程论坛 C语言论坛

scanf中的%d和%c加不加空格

黑暗骑士5D 发布于 2019-11-06 10:44, 2334 次点击
为什么%c要加空格而%d不用
3 回复
#2
rjsp2019-11-06 10:58
为什么%c要加空格
要不要加空格,不是取决于它是不是%c,而是取决于你想不想略过前面的空白字符。你想略过空白字符的话,你就加;不想略过空白字符的话,就不能加。
%d %s 等,因为“不略过前面的空白字符”的情况是没存在意义的,所以必然会略过前面的空白字符,那么在它们之前加上空格就是多此一举。
#3
梦之痕2019-11-06 17:10
不用加吧
#4
自学的数学2019-11-06 19:45
是这样的```在不加空格的情况下"%d%c%c",&a, &b , &c 当你输入“3空e空f” 你第一个是整形 自然会把你输入的数字给第一个a,你输入第二个是空格,会把这个空格当成字符赋值给b 你输入第三个是e,会把e赋值给c 这样程序就认为已经完成了赋值,而不会理会后面的"空f"
结果a=3,b=' ',c='e'
可以这样测试
程序代码:
#include<stdio.h>

 main()
{
long a;
char b,c;
scanf("%d%c%c",&a, &b, &c); //输入“3空e空f”
printf("%c\n",c); //输出变量c为'e'
return 0;
}
1