getchar()与变量不一致

时间:2011-10-11 16:27:06

标签: c

所以我正在阅读K& R书,我对这段代码有疑问:

int c;
c = getchar();

为什么他们使用整数变量?是不是getchar()返回一个字符的值?所以char会更合适吗?请赐教。

5 个答案:

答案 0 :(得分:4)

getchar()需要能够指示何时到达输入的结尾。它通过返回EOF来做到这一点,故意在有效{{1}之外范围,因此它不会与出现在输入上的字符发生冲突。

答案 1 :(得分:2)

getchar函数返回int因为它需要一种方法来在尝试从文件中读取时发出错误信号。由于char类型只需要包含所有可能的字符值,因此您需要更大的类型才能返回EOF值。

答案 2 :(得分:1)

这样,当getchar()返回EOF时,您可以将EOF与真实有效的char区分开来。

答案 3 :(得分:0)

当输入文件为eof时,

getchar返回EOF(-1)。

答案 4 :(得分:0)