Windows控制台中的奇怪显示EOF字符

时间:2013-10-05 08:26:37

标签: c console putchar

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

当您使用putchar(EOF)putchar(-1)时,它会转换为unsigned char255。但ASCII值255不是可打印字符,结果因机器而异。