fgetc无法识别EOF

下面的程序在各种Solaris / Linux版本上运行良好,但在AIX上运行不正常。 但是,如果我在AIX上用while(c!=0xff)替换while(c!=EOF)它运行完全正常。

有什么想法吗? 我检查了AIX上的fgetc手册页,它应该返回EOF常量!


 #include  #include #include  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;