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;