簡體   English   中英

fgetc總是返回值1

[英]fgetc is always returning value 1

有以下功能:

void readAndPrint(FILE * f) {
    int c;

    while(c = fgetc(f) != EOF) {
        printf("%d", c);
    }
}

在main()體中我使用以下代碼來使用上面的函數:

FILE * pFile;

pFile=fopen ("myfile.txt","r");

readAndPrint(pFile)

;

無論我放入myfile.txt,程序都打印出來。 例如,對於abc,打印出111。

我知道函數中的c應該聲明為int以正確地將它與EOF進行比較。 另外,我希望打印出來自文本文件中每個字符的ASCII集的int代碼(97表示a,...)。 我無法弄清楚為什么它會打印出“那些”...你知道原因嗎? 先感謝您。

(c = fgetc(f) != EOF) - 這里首先是fgetc(f) != EOF這種情況正在發生,結果10被分配給c 條件檢查始終返回TRUE1 )或FALSE0 )。

做的while((c = fgetc(f)) != EOF)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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