This question already has answers here:
Difference between int and char in getchar/fgetc and putchar/fputc?
(2个答案)
2年前关闭。
下面的程序可以在各种Solaris/Linux上正常运行,但不能在AIX上运行。
但是,如果我在AIX上将
有什么想法吗?我检查了AIX上的fgetc手册页,它应该返回EOF常量!
到
(2个答案)
2年前关闭。
下面的程序可以在各种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;
}
最佳答案
fgetc
的返回值是int
而不是char
。所以改变
char c;
到
int c;
关于c - fgetc无法识别EOF ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3977223/
10-12 15:59