fgetc 无法识别 EOF [重复]
Posted
技术标签:
【中文标题】fgetc 无法识别 EOF [重复]【英文标题】:fgetc does not identify EOF [duplicate] 【发布时间】:2011-04-27 23:50:45 【问题描述】:下面的程序在各种 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;
【问题讨论】:
AIX 似乎有未签名的字符 【参考方案1】:fgetc
的返回值是int
而不是char
。所以改变
char c;
到
int c;
【讨论】:
以上是关于fgetc 无法识别 EOF [重复]的主要内容,如果未能解决你的问题,请参考以下文章
NullPointerException 我无法识别 [重复]