簡體   English   中英

打印EOF的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM