在Kernighan和Ritchie(C编程语言)中:
'写一个程序来打印EOF的价值'
我写:
#include <stdio.h>
main(){
int c;
c = getchar();
if ((c = getchar()) == EOF)
putchar(c);
}
Run Code Online (Sandbox Code Playgroud)
但它没有输出什么为什么?
Sor*_*rer 14
putchar函数打印一个字符.
但EOF不是字符,用于指示文件的结尾.因此getchar返回一个可与字符集区分开的值,以表示没有更多输入.
所以使用putchar()打印EOF不会打印任何值
将其打印为整数
printf("%d",EOF);
Run Code Online (Sandbox Code Playgroud)
给出结果-1
试试这个:
#include <stdio.h>
int main(){
printf("EOF: %d\n", EOF);
}
Run Code Online (Sandbox Code Playgroud)
EOF 不是您所期望的可打印字符.
putchar(c)表示输出与使用c中的字符编码(通常是ASCII)对应的字符.编码没有字符EOF(这是整个点EOF).
"EOF的值"并不意味着"打印代码为的字符EOF".
另一个例子:角色的值EOF是65; 你的任务是打印相当于putchar(c)但c不是for EOF.所以,EOF不是要走的路.
| 归档时间: |
|
| 查看次数: |
17346 次 |
| 最近记录: |