下面的程序在各种 Solaris/Linux 版本上运行良好,但在 AIX 上运行不佳。
但是,如果我更换while(c!=EOF)
with while(c!=0xff)
在 AIX 上它运行得很好。
有什么想法吗?我检查了 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;
}
返回值fgetc http://en.cppreference.com/w/c/io/fgetc is int
not char
。所以改变
char c;
to
int c;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)