【问题标题】:Strange display EOF character in the windows consoleWindows控制台中奇怪的显示EOF字符
【发布时间】:2023-07-22 04:46:01
【问题描述】:

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

【问题讨论】:

    标签: c console putchar


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我知道取决于系统的 EOF 值,但是否显示 -1 代码取决于 Windows 中的编译器或控制台设置?
      • EOF 的值等于任何字符代码。所以结果可以是世界上的任何东西。这么笼统地说 - 是的,它可能是由于你的编译器的实现方式而发生的。
      最近更新 更多