fread liest kein 0x0D



  • Hallo!

    Folgende Anweisung soll mir eine Datei Zeichen für Zeichen auslesen.

    while (fread(&valueRead, sizeof(unsigned char), 1, shapeFile) != 0){
     .
     .
     .
     }
    

    valueRead ist vom Typ unsigned char

    Das klappt ja auch alles ganz gut. Aber sobald in der Datei ein Byte mit dem Wert 0x0D vorkommt, wird es beim Lesen ausgelassen. Kann es sein, dass fread 0x0D (also carrige return) Zeichen auslässt? Ich habe es schon mit fgetc probiert und habe das gleiche Phänomen festgestellt. 😕



  • Das dürfte eigentlich nicht sein. Auch ein \r wird normalerweise gelesen. Bist du dir sicher, dass auch ein carrige return drinsteht in der Datei?? Steht vielleicht ein carrige return in Verbindung mit einem new line drin und es wird nur als new line gelesen? Öffnest du die Datei im benär oder im Textmodus??



  • Ich öffne die Datei mit:

    fopen("dateiname", "r")
    

    Die Datei ansich ist ein schwarz/weiss Bild mit 1 bit Farbtiefe. Also ein binäres Bild. Das 0x0D in der Datei sind also 4 weisse, 2 schwarze, ein weisser und noch ein schwarzes Pixel hintereinander. Hat nichts mit Text zu tun. So ist halt das Bild. Aber trotzdem wird das Byte fallen gelassen. Ändere ich das Byte in 0x1D wird es eingelesen...

    WAS IST DAS??



  • öffne mal die Datei im Binärmodus:

    fopen("datei","rb")
    


  • DANKE!! DANKE!!

    Das wars! jetzt liest fread auch 0x0D!

    Vielen Dank! 😃


Anmelden zum Antworten