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

C windows控制台中奇怪的显示EOF字符,c,console,putchar,C,Console,Putchar,最近面临着对EOF字符控制台窗口的有趣解释。在某些运行windows 7的计算机上,codeputchar(255)&&putchar(-1)显示为空格字符,有些显示为'a'字符。第二个让我困惑。请告诉我,为什么会发生这种情况?EOF的实际值取决于系统(但通常为-1,如在glibc中),并且不等于任何有效字符代码。EOF的实际值取决于系统(但通常为-1,如在glibc中)它不等于任何有效的字符代码。EOF不是字符,它更像是一个信号(而不是Unix信号),表示文件结束。Is值取决于实现,但保证不等

最近面临着对EOF字符控制台窗口的有趣解释。在某些运行windows 7的计算机上,code
putchar(255)
&&putchar(-1)显示为空格字符,有些显示为
'a'
字符。第二个让我困惑。请告诉我,为什么会发生这种情况?

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

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

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


使用
putchar(EOF)
putchar(-1)
时,它将转换为
无符号字符
255
。但是ASCII值
255
不是一个可打印的字符,结果在不同的机器中有所不同。

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


使用
putchar(EOF)
putchar(-1)
时,它将转换为
无符号字符
255
。但是ASCII值
255
不是一个可打印的字符,结果在不同的机器上有所不同。

我知道系统依赖于EOF值,但是-1代码的显示取决于windows中的编译器或控制台设置。
EOF
的值等于任何字符代码。所以结果可能是世界上任何东西。因此,不严格地说-是的,这可能是由于编译器的实现方式造成的。我知道依赖于系统的EOF值,但是否显示-1代码取决于windows中的编译器或控制台设置?
EOF
的值等于任何字符代码。所以结果可能是世界上任何东西。因此,不严格地说,是的,这可能是由于编译器的实现方式造成的。