fgetc不识别EOF

时间:2010-10-20 11:23:53

标签: c types aix eof fgetc

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

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


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

1 个答案:

答案 0 :(得分:16)

fgetc的返回值为int而不是char。所以改变

char c;

int c;