所以我正在阅读K& R书,我对这段代码有疑问:
int c;
c = getchar();
为什么他们使用整数变量?是不是getchar()返回一个字符的值?所以char会更合适吗?请赐教。
答案 0 :(得分:4)
getchar()
需要能够指示何时到达输入的结尾。它通过返回EOF
来做到这一点,故意在有效{{1}之外范围,因此它不会与出现在输入上的字符发生冲突。
答案 1 :(得分:2)
getchar
函数返回int
因为它需要一种方法来在尝试从文件中读取时发出错误信号。由于char
类型只需要包含所有可能的字符值,因此您需要更大的类型才能返回EOF
值。
答案 2 :(得分:1)
这样,当getchar()
返回EOF
时,您可以将EOF
与真实有效的char
区分开来。
答案 3 :(得分:0)
getchar返回EOF(-1)。
答案 4 :(得分:0)