作为刚学c语言的小白,有一点不太明白,在下面两段类似的程序中。
int main()
{
int a;
scanf("%c",&a);
printf("%d",a);
return 0;
int main()
{
int a;
a=getchar();
printf("%d",a);
return 0;
二者程序都输入a,前者输出的a无论多少次都是32609,而后者则为正常的ASCII码97。
不太明白这其中的原因
在scanf函数的格式控制中,格式说明的类型与输入项的类型必须一一对应匹配,如不匹配将导致数据输入出现错误,但是系统并不报错。所以其实用scanf,a的输入有误