龟etc不识别EOF [英] fgetc does not identify EOF

查看:190
本文介绍了龟etc不识别EOF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的程序运行在Solaris精细/ Linux的各种味道,但不是在AIX上。
在AIX 而(C!= EOF)如果我通过更换,而(C!= 0xFF的)它只是运行正常完全

任何想法?我查了AIX龟etc的手册页,它应该返回EOF不变!


 的#include<&stdio.h中GT;
#包括LT&;&unistd.h中GT;
#包括LT&;&string.h中GT;
诠释主(){
焦炭℃;
  FILE * FP;
  FP = FOPEN(A.TXT,R);
     C =龟etc(FP);
     而(C!= EOF)
        {
        C =龟etc(FP);
        的printf(%D,C);
        }  FCLOSE(FP);
返回0;
}


解决方案

龟etc INT 不是字符。因此,改变

 字符℃;

  INT℃;

Below program runs fine on solaris/linux various flavor, but not on AIX. on AIX while(c!=EOF) if i replace by while(c!=0xff) it just run fine completely

Any thought ? i checked the man page of fgetc on aix, and it should return 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;
}

解决方案

The return value of fgetc is int not char. So change

char c;

to

int c;

这篇关于龟etc不识别EOF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆