2

最近遇到了一个有趣的 EOF 字符控制台窗口解释。在某些运行 Windows 7 代码的机器上,putchar (255)&&putchar (-1)显示为空格字符,有些则显示为'a'字符。第二个让我困惑。请告诉我,为什么会这样?

4

2 回答 2

2

的实际值EOF取决于系统(但通常为 -1,例如在 glibc 中)并且不等于任何有效的字符代码。

于 2013-10-05T08:29:02.127 回答
2

EOF不是一个字符,它更像是一个指示文件结束的信号(不是 Unix 信号)。值是否取决于实现,但保证不等于任何有效字符,通常是-1.

当您使用putchar(EOF), 或putchar(-1)时,它会转换为unsigned char, 255。但是 ASCII 值255不是可打印字符,不同机器的结果会有所不同。

于 2013-10-05T09:05:36.493 回答