【发布时间】:2014-05-24 11:22:04
【问题描述】:
在 Kernighan 和 Ritchie(C 编程语言)中:
'编写程序打印EOF的值'
我写道:
#include <stdio.h>
main(){
int c;
c = getchar();
if ((c = getchar()) == EOF)
putchar(c);
}
但它没有输出任何东西,为什么?
【问题讨论】:
-
EOF不是字符,因此putchar(EOF)可以做任何事情。你想要的是printf("%d", EOF)。 -
putchar(EOF)被定义为表示putchar( (unsigned char)(EOF) )(C11 7.21.7.3) ,因此它不能“做任何事情”,它必须输出一些字符。虽然这可能是一个不可打印的字符