C语言getchar 函数问题

C语言getchar 函数问题为什么没有像教材那样说的 输出ASCII码值

书上在胡说八道,代码中没有一条是输出ASCII码值的语句,都是输出字符的。你把最后一句中的%c都改成%d就输出ASCII码值了。追问

d不是整数吗? 在getchar函数中 可以代表ASC码?

追答

难道ASCII码是浮点数?

追问

可是ASC还可以表示大写英文字母 、 标点 、、、 这个d没发表示。 (初学者, 谢谢前辈了 待会加金币)

追答

无论是大写字母还是小写字母,以及其他能显示的和不能显示的字符,其ASCII编码都是在0~127之间的整数。%d连长达4个字节的整数都能控制输出,怎么就控制不了0~127这128个整数?

追问

那请问下 是不是在putchar(ch1) 这步的时候 字符已经变成ASC码值。然后printf 输出、

追答

什么是字符?计算机能存储字符?所有的所谓“字符”在计算机中就是一个ASCII码值,比如A是65,a是97。putchar函数的功能是在屏幕上显示调用时()里写一个“整数”值代表的字符形状,写putchar(97);,显示就是a,若写putchar(a);反而就错了;但写putchar('a');是正确的,同样显示a,因为C规定用一对单引号括起来的字符叫“字符常量”,是取其中字符对应的ASCII编码码值的意思,所以putchar('a');就等价putchar(97);了……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-30
输出语句的占位符
%c代表 字符
%d代表 整数
printf("%c",ch1); 自然会输出原本的字符。
printf("%d",ch1); 才会输出字符所对应的十进制ASCII码。追问

d不是整数吗? 在getchar函数中 可以代表ASC码?

追答

getchar函数 只能读入字符。

C语言的char类型也可以作为整型 使用,代表的就是那个字符对应的ASCII码 整数。

比如 ‘A’完全可以当做整数 65 使用。

char ch = 'A';
printf("%c", ch);    //输出字符 A
printf("%d", ch);    //输出数字 65

int i = 'A'- 20;    //i = 45

相似回答