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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

工作室无法识别 R.layout [重复]

NullPointerException 我无法识别 [重复]

c#,LINQ to Entities 无法识别方法'Int32 [重复]

CSS样式无法识别数字[重复]

无法识别“nmake”一词[重复]

模块无法识别索引变量[重复]