繁体   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