gpt4 book ai didi

c - fgetc 总是返回值 1

转载 作者:太空狗 更新时间:2023-10-29 15:55:25 26 4
gpt4 key购买 nike

有如下函数:

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,...)。我不明白为什么它会打印出“ones”……你知道原因吗?提前谢谢你。

最佳答案

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

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

关于c - fgetc 总是返回值 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com