fgetc总是返回值1

Prz*_*m3k 3 c printf eof getc fgetc

有以下功能:

void readAndPrint(FILE * f) {
    int c;

    while(c = fgetc(f) != EOF) {
        printf("%d", c);
    }
}
Run Code Online (Sandbox Code Playgroud)

在main()体中我使用以下代码来使用上面的函数:

FILE * pFile;

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

readAndPrint(pFile)
Run Code Online (Sandbox Code Playgroud)

;

无论我放入myfile.txt,程序都打印出来.例如,对于abc,打印出111.

我知道函数中的c应该声明为int以正确地将它与EOF进行比较.另外,我希望打印出来自文本文件中每个字符的ASCII集的int代码(97表示a,...).我无法弄清楚为什么它会打印出"那些"...你知道原因吗?先感谢您.

ras*_*hok 9

(c = fgetc(f) != EOF)- 首先,fgetc(f) != EOF这种情况正在发生,结果10分配给c.始终是条件检查返回TRUE(1)或FALSE(0).

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