Forum: PC-Programmierung [C/C++] fscanf-Problem


von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Hallo,

ich habe dieses Programm geschrieben um .bmp nach .hex zuwandeln. Das 
funktioniert auch so weit, allerdings kann es bei bestimmten 
Bildinhalten dazu kommen, dass ab einem bestimmten Punkt nur noch eine 
konstante Zahl über fscanf(bild,"%c",$tmp) eingelesen wird. Ich vermute 
einmal, dass der eingelesene Wert dabei eine Art steuerzeichen 
representiert, was dazu führt, dass der "shit upfu_ckt".
Kann das sein oder liegt es an etwas anderem?
Wie würet ihr das Einlesen lösen?
so etwas würde mir lieber gefallen:
tmp = bild[index];

von Jörg (Gast)


Lesenswert?

Hallo,

vermute mal Du öffnest Dein Bmp-Bild per fopen(..) im Textmodus. Wenn
Du statt dessen die Datei als binäre Datei öffnest ("rb"-Modus) und per
fread(..) die einzelnen Zeichen/Pixel liest, solltest Du keine Probleme 
bekommen. Dagegen wird eine als Textdatei geöffnete Datei sozusagen 
interpretiert, d.h. Zeichen wie "/n" (=Return) werden überlesen bzw.
führen zu einem von Dir nicht gewüschten Verhalten.

Gruss

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

fscanf ist nicht geeignet, um Binärdateien zu lesen. Bilddateien sind 
aber -von ganz wenig Ausnahmen abgesehen- immer binär codiert.

von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Danke, es hat geklappt!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.