【问题标题】:fgetc does not identify EOF [duplicate]fgetc 无法识别 EOF [重复]
【发布时间】: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 似乎有未签名的字符

标签: c types aix eof fgetc


【解决方案1】:

fgetc 的返回值是int 而不是char。所以改变

char c;

int c;

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 2012-06-18
    • 2018-07-21
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多