getchar()【还有fgetc(stream
pointer)】返回一个int类型是个经典的问题,直观上getchar()返回一个char类型是合情合理的,且是理所当然的,我们知道,一个ascii码的值是在0
--
127之间,但作为一个函数,其编造者总希望有更强的功能,想到了,如果读字符时遇到问题(如硬件错误),则以eof(-1)作为返回值。
现在的c语言中,一个字符变量可以是unsigned
char类型,也可以是char类型,同样也可以是
signed
char类型,char
和
signed
char是相同的,但早期的c语言默认都是unsigned
char,其表示的范围是
0
--
255,那么表示读字符失败的eof该如何表示呢,char是不行的,但int可以,这就是getchar()返回int的真实理由。
温馨提示:答案为网友推荐,仅供参考