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,...).我无法弄清楚为什么它会打印出"那些"...你知道原因吗?先感谢您.
(c = fgetc(f) != EOF)- 首先,fgetc(f) != EOF这种情况正在发生,结果1或0分配给c.始终是条件检查返回TRUE(1)或FALSE(0).
做 while((c = fgetc(f)) != EOF)