2010-10-20 25 views
5

Le programme ci-dessous s'exécute bien sur les différentes saveurs de solaris/linux, mais pas sur AIX. sur AIX while(c!=EOF) si je remplace par while(c!=0xff) il fonctionne juste bien complètementfgetc n'identifie pas EOF

Pensée? J'ai vérifié la page de man de fgetc sur aix, et il devrait retourner EOF constante!


#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; 
} 

Répondre

14

La valeur de retour de fgetc est int pas char. Donc, changer

char c; 

à

int c;