cgetchar() 与变量不一致

  • 本文关键字:变量 不一致 cgetchar
  • 更新时间 :
  • 英文 :


所以我正在阅读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