Datei einlesen - einzelnt



  • Hi zusammen!

    Bei dem unten stehenden Code wird zwar der Inhalt der Datei (FFileD) richitg eingelesen, aber bei der Datei (FFileE) tritt ein Fehler auf. FCH hat den Integer Wert von -1, obwohl die Datei nicht leer ist.

    int FID=0;
    char FCH;
    
    FILE *FFileD;
    FILE *FFileE;
    
    while((FID = fegtc(FFileD))!=EOF) {
        FCH = fgetc(FFileE);
        printf("%c", FCH);
        printf("\n");
    }
    

    Danke

    Edit: Ist mein Fehler darin begründet, das die falschen Variablentypen genommen wurde? (Int - Erfolgreich getestet; char in Beispielen verwendet). beide als Int nicht erfolgreich.



  • Vielleicht enthält FFileE ein Zeichen mit dem Code 255? fgetc liefert gelesene Zeichen als nichtnegativen int zurück, EOF als -1. Wenn du den Rückgabewert aber in ein char konvertierst, verlierst du die Möglichkeit, EOF und das Zeichen mit dem entsprechenden Code (in der Regel 255) auseinanderzuhalten.



  • Bashar schrieb:

    Vielleicht enthält FFileE ein Zeichen mit dem Code 255? fgetc liefert gelesene Zeichen als nichtnegativen int zurück, EOF als -1. Wenn du den Rückgabewert aber in ein char konvertierst, verlierst du die Möglichkeit, EOF und das Zeichen mit dem entsprechenden Code (in der Regel 255) auseinanderzuhalten.

    Auch wenn die Variable als int verwendet wird, gibt diese einen Wert als -1 zurück. Die datei hat folgenden Inhalt

    abcd
    1234
    


  • Dann wirst du mehr Informationen liefern müssen, ein vollständiges compilierbares Minimalbeispiel unter anderem.



  • Danke für die Hilfe.

    Ich habe den Fehler schon gefunden.

    Der Thread kann geschlossen werden.


Anmelden zum Antworten