2016-05-07 12 views
3

ich dieses Programm haben char zum Lesen durch meine Datei verkohlen und ausdrucken auf dem Monitor:Schleife hört nie

#include<stdio.h> 

int main() 
{ 
    unsigned char mychar; 
    FILE *fp; 
    fp=fopen("test.txt", "r"); 
    while((mychar = getc(fp))!=EOF) 
     printf("%c", mychar); 
    fclose(fp); 
    return 0; 
} 

Es ist meine Datei druckt dann für immer Schleife fortgesetzt. Können Sie mir helfen?

+4

'unsigned char MyChar;' -> 'int MyChar;' – BLUEPIXY

+0

Ja, danke; vielleicht ist char besser. –

+0

'char' ist falsch. Weil 'char'' signed char' oder 'unsigned char' ist. – BLUEPIXY

Antwort

5

EOF haben Wert -1 Also, warum erklären Sie mychar als unsigned char?

Bitte mit diesem ändern:

int main() 
{ 
    int mychar; 
    FILE *fp; 
    fp=fopen("test.txt", "r"); 
    while((mychar = getc(fp))!=EOF) 
     printf("%c", mychar); 
    fclose(fp); 
    return 0; 
} 
+0

haben. Ja, danke für die Hilfe –