fgetc 不识别 EOF [英] fgetc does not identify EOF
本文介绍了fgetc 不识别 EOF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面的程序可以在各种 Solaris/Linux 版本上正常运行,但不能在 AIX 上运行.但是,如果我在 AIX 上用 while(c!=0xff)
替换 while(c!=EOF)
,它运行完全正常.
The program below runs fine on various Solaris/Linux flavours, but not on AIX.
However, if I replace while(c!=EOF)
with while(c!=0xff)
on AIX it runs completely fine.
有什么想法吗?我检查了 AIX 上的 fgetc 手册页,它应该返回 EOF 常量!
Any thoughts? I checked the fgetc man page on AIX, and it should return the EOF constant!
#include <stdio.h>
#include<unistd.h>
#include <string.h>
int main() {
char c;
FILE *fp;
fp = fopen("a.txt", "r");
c=fgetc(fp);
while(c!=EOF)
{
c=fgetc(fp);
printf("%d",c);
}
fclose(fp);
return 0;
}
推荐答案
的返回值fgetc
是 int
不是 char
.所以改变
char c;
到
int c;
这篇关于fgetc 不识别 EOF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文