关于getchar读入字符问题??急求!!

来源:百度知道 编辑:UC知道 时间:2024/06/28 02:18:59
程序如下:
#include<stdio.h>
main()
{ int c;
printf("Enter a character:");
c=getchar;
printf("%c,%d\n",c,c);}
当我输入a时候,结果是a,97
但是当我输入97的时候,怎么不是a,97啊???97不是a的ascII码吗?开始我定义的是c为int型了,因该自动识别97为a的ascII码吧,
如果将其中的int c改为char c,对结果有影响吗???
先输入a,结果是:
先输入97,结果又是:
再继续问千总一个问题了,程序如下:
# include<stdio.h>
main()
unsigned int a=65535;
int b=-2;
printf("a=%d,%o\n",a,a);
printf("b=%d,%o\n",a,a);
}本题结果是??
还有就是-2,和65535在内存中到底是以什么形式存储的啊,二进制,8进制度,还是16等等,另外为什么带了符号,在内存里的二进制怎么写,方法是....那个-2,65535本身到底是什么含义,ascII码,还是就是个整型量???

getchar()是读入一个字符,你输入97,但是其实它只是读入9,再把9传给c,而且你的getchar后面少了一个括号,应改为c=getchar();
你可以把c=getchar();改为scanf("%d",&c);

把c定义为整型不止可以输入十进制,也可以输入十六进制和八进制,只要把输入有符号的十进制整数的格式符%d改成输入无符号的八进制整数的格式符%o(是英文字母o而不是数字0,小写的),或是换成无符号的十六进制整数%x,就可以输入八进制或十六进制的整数了,输出也一样。