C语言 getchar putchar

getchar(),putchar()书上说这个function return一个int值,但是用的时候putchar就是直接print一个character,getchar直接获取一个character,那么这个int体现在哪里?是做什么用的?
getchar是读取单个character吗,比如说输入cat然后按回车,getchar只读取c?那么EOF又是干嘛用的呢。比如说这个function
int count(char c)
{
int next;
int frequency=0;
while((next=getchar())!=EOF)
if(next==c)

frequency++;

return frequency;
}

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的真实理由。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-12
putchar() return the character written as an unsigned char cast to an int or EOF on error.
getchar() return the character read as an unsigned char cast to an int or EOF on end of file or error.
相似回答