Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
最近遇到了一个有趣的 EOF 字符控制台窗口解释。在某些运行 Windows 7 代码的机器上,putchar (255)&&putchar (-1)显示为空格字符,有些则显示为'a'字符。第二个让我困惑。请告诉我,为什么会这样?
putchar (255)
putchar (-1)
'a'
的实际值EOF取决于系统(但通常为 -1,例如在 glibc 中)并且不等于任何有效的字符代码。
EOF
EOF不是一个字符,它更像是一个指示文件结束的信号(不是 Unix 信号)。值是否取决于实现,但保证不等于任何有效字符,通常是-1.
-1
当您使用putchar(EOF), 或putchar(-1)时,它会转换为unsigned char, 255。但是 ASCII 值255不是可打印字符,不同机器的结果会有所不同。
putchar(EOF)
putchar(-1)
unsigned char
255