[英]Printing the value of EOF
在 Kernighan 和 Ritchie(C 編程語言)中:
'編寫一個程序來打印 EOF 的值'
我寫:
#include <stdio.h>
main(){
int c;
c = getchar();
if ((c = getchar()) == EOF)
putchar(c);
}
但它不輸出任何東西 為什么?
putchar 函數打印一個字符。
但是 EOF 不是字符,用於指示文件的結尾。 因此 getchar 返回一個與字符集可區分的值,以指示沒有更多輸入。
所以使用 putchar() 打印 EOF 不會打印任何值
將其打印為整數
printf("%d",EOF);
給出結果-1
putchar(c)
意思是輸出使用的字符編碼(通常是ASCII)中c
(為數字)對應的字符。
有沒有被編碼為字符EOF
(這是整點EOF
)。
規定“打印EOF的值”並不意味着“打印代碼為EOF
的字符”(因為沒有)。 相反,它們很可能意味着在您的系統上打印與EOF
具有相同值的整數。
嘗試這個:
#include <stdio.h>
int main(){
printf("EOF: %d\n", EOF);
}
EOF
不是您預期的可打印字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.