我有这些代码
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
printf("%d",(int)a);
}
我的问题是,当我键入a作为输入时,我得到45等于ASCII的数字,现在我决定将这些代码更改为:
#include<stdio.h>
void main()
{
int a;
scanf("%c",&a);
printf("%d",(int)a);
}
它显示了正确的答案是97,我不知道%c有何区别。
当输入char
to时int a; scanf("%d",&a);
,它会跳过输入。的char
在输入缓冲器停留和的先前值a
被保留。因此,您的情况45
是的初始垃圾值a
。
但是,当像in中那样输入字符时int a; scanf("%c",&a);
,该字符将从输入缓冲区中提取,并且其等效的整数存储在中a
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句