2010-10-20 30 views
5

Dưới đây chương trình chạy tốt trên solaris/linux hương vị khác nhau, nhưng không phải trên AIX. trên AIX while(c!=EOF) nếu tôi thay thế bằng while(c!=0xff) nó chỉ chạy tốt hoàn toànfgetc không xác định EOF

Bạn nghĩ gì? tôi đã kiểm tra trang người đàn ông của fgetc trên aix, và nó sẽ trả về hằng số 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; 
} 

Trả lời

14

Giá trị trả về của fgetcint không char. Vì vậy, thay đổi

char c; 

để

int c;