2010-10-20 16 views
5

Unten Programm läuft gut auf Solaris/Linux verschiedenen Geschmack, aber nicht auf AIX. auf AIX while(c!=EOF) Wenn ich ersetzen durch while(c!=0xff) es läuft einfach gutfgetc identifiziert nicht EOF

Jeder Gedanke? Ich habe die Manpage von fgetc auf aix überprüft und es sollte EOF konstant setzen!


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

Antwort

14

Der Rückgabewert von fgetc ist int nicht char. So

ändern
char c; 

zu

int c;