为什么只是调换下int和char的顺序结果却不一样?
inta=0;charb=0;scanf("%d",&a);printf("a=%d\n",a);scanf("%c",&b);printf("b=%c\n",b);in...
int a=0;
char b=0;
scanf("%d",&a);
printf("a=%d\n",a);
scanf("%c",&b);
printf("b=%c\n",b);
int a=0;
char b=0;
scanf("%c",&b);
printf("b=%c\n",b);
scanf("%d",&a);
printf("a=%d\n",a);
第一张图的数据要连着输入才能正常运行,
而第二张要先输入一个回车后再输入,请问这是怎么回事? 展开
char b=0;
scanf("%d",&a);
printf("a=%d\n",a);
scanf("%c",&b);
printf("b=%c\n",b);
int a=0;
char b=0;
scanf("%c",&b);
printf("b=%c\n",b);
scanf("%d",&a);
printf("a=%d\n",a);
第一张图的数据要连着输入才能正常运行,
而第二张要先输入一个回车后再输入,请问这是怎么回事? 展开
3个回答
展开全部
前者输入
5p
输出
a=5
b=p
后者输入
p5
输出
b=p
a=5
不知你说的结果不一样是什么意思
----------------------------------------------------------------------------------------------------------------
当然输入不一样于是输出不一样是再正常不过的事情,多一个回车少一个回车结果不同应该是在预期之内的
更多追问追答
追问
追答
我想你需要的回答是这个:
scanf 的所有格式控制符中,只有 %c 是不忽略空白字符(空格、TAB、回车)的。也就是说 %d 如果遇到空白字符会直接忽略,直到遇到非空白字符;但是 %c 如果遇到空白字符会直接把这个字符赋给 scanf 的对应参数。
scanf (" %c", &ignore_me );
%c前的空格同样会使得 scanf 忽略所有空白字符
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询