fputc() verschluckt Zeichen

OP #6780390
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe eine BMP-Datei, von der ich nur noch ein C-Array habe (und die 
Original-Datei fehlt).

Eigentlich kein Problem - einfach das Array wieder in eine Datei 
speichern (siehe Quelltext im Anhang). Aber irgendetwas macht mir einen 
Strich durch die Rechnung. Die ersten und die letzten HEX-Werte stimmen 
immer (überprüft mit einem HEX-Editor). Aber mittendrin scheint fputs() 
Zeichen zu verschlucken oder zu verdoppeln - in sich auch konsistent, 
denn bei jedem Array kommt immer die gleiche Binärdatei heraus 
(zumindest bei den Versuchen, die ich bis jetzt gemacht habe). Unterm 
Strich ist die Datei immer grob 1000 Bytes zu groß (obwohl die in Zeile 
4657 angezeigte Größe stimmt) und natürlich unbrauchbar.

Build-Umgebung ist ein betagter (tdm64-1) gcc 5.1.0 oder der 9.2.0

Was passiert hier? Ich weiss, dass fputc() Zeichen bis zu einem Flush 
oder Programmende zurückstellen darf, aber Zeichen verdoppeln?
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.