FF/255 am ende einer datei



  • hi,
    ich öffne datei im binär modus, und les einfach zeichen für zeichen aus. am ende der datei wird aber irgendwie angezeigt, das da ein byte mit wert FF/255 wäre.

    DieDatei schrieb:

    aaaa

    struct struct_Datei
    {
        unsigned char byte;
    };
    
    [...]
    stuct_Byte Datei;
    fDatei = fopen(DieDatei,"r+b"))
    while (!feof(fDatei)){
        Datei.new_byte = fgetc(fDatei);
        printf("\n%d", Datei.byte);
    }
    

    Ausgabe schrieb:

    97
    97
    97
    97
    255

    Die variable DieDatei wurde vorher initialisiert.



  • Dein EOF-Test ist falsch. Man erkennt EOF erst, wenn einmal versucht wurde, über das Ende der Datei hinaus zu lesen.



  • while (1){
    Datei.new_byte = fgetc(fDatei);
    if (feof(fDatei)) break;
    printf("\n%d", Datei.byte);
    }

    funktioniert, find ich aber ned wirklich elegant 😉



  • Hallo,
    schau dir doch einfach mal den Rückgabewert von fgetc an:

    fgetc and _fgetchar return the character read as an int or return EOF to indicate an error or end of file.

    Und schwupps:

    int byte;
    while ( (byte = fgetc(fDatei)) != EOF) { 
        printf("\n%d", byte); 
    }
    

Anmelden zum Antworten