本文介绍了龟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;
}
解决方案
的是 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!