所以我正在阅读K&R的书,我有一个关于这个代码的问题:
int c;
c = getchar();
为什么他们使用整数变量?getchar(( 返回的值不是吗?所以炭会更合适吗?请开导我。
getchar()
需要能够指示何时到达输入的末尾。它通过返回 EOF
来实现这一点,该 故意超出有效char
范围,因此它不会与输入上出现的字符冲突。
getchar
函数返回一个int
,因为它需要一种方法在尝试从文件中读取时发出错误信号。由于 char
类型只需要保存所有可能的字符值,因此需要更大的类型才能返回EOF
值。
当getchar()
返回EOF
时,你可以区分EOF
和真实的、有效的char
。
输入文件位于 eof 时,getchar 返回 EOF (-1(。
http://msdn.microsoft.com/en-us/library/5231d02a(VS.71(.aspx