c中EOF的ascii值是多少?

Pat*_*Nik 24 c c++

任何人都知道i的ASCII值是多少.

我试试 printf("%d",EOF);

但它的印刷品 -1

并尝试 printf("%c",EOF);

但它的打印空白屏幕.

所以任何人都知道哪个键EOF.

R..*_*R.. 42

EOF(如C语言中所定义)不是字符/不是ASCII值.这就是为什么getc返回一个int而不是一个unsigned char- 因为读取的字符可以具有范围内的任何值unsigned char,并且返回值getc也需要能够表示非字符值 EOF(必须是负数).

  • 这只是C语言的一个要求。对历史动机的一种猜测是,测试“x<0”通常比用非零常数测试相等性更便宜。通过要求“EOF”为负并且所有有意义的字符值都为非负,程序员可以检查“x<0”是否为 EOF。 (2认同)

Dav*_*nan 9

EOF的实际值是系统定义的,不是标准的一部分.

EOF是否为int负值,如果要打印它,则应使用%d格式字符串.请注意,这只会告诉您它在您的系统上的价值.你不应该关心它的价值.

  • 为什么要downvote.我想知道我是否错了. (2认同)