liquid
2003-05-28, 23:32:02
Hiho,
ich versuche mit Hilfe der fstream Klasse eine binäre Datei (genauer gesagt eine TGA) auszulesen.
Mein früherer TGA-Loader benutze das cstdio Interface, aber das wollte ich mal ändern. Jedenfalls scheint es so zu sein, dass er operator >> der fstream Klasse nicht so ganz funktioniert.
Das Holen von Daten aus dem stream funktioniert bei mir nur mit char bzw. unsigned chars. Nun will ich aber ein short integer mit Daten füttern.
Alles stürzt mein ganzen Code hoffnungslos, sobald ich das versuche. Es liegt allerdings nicht direkt am Einlesen, sondern daran, dass nach dem Einlesen der get-pointer des streams auf -1 gesetzt wird. Ich finde das doch reichlich merkwürdig. Die Datei ist nämlich ein wenig länger, als die paar Bytes, die er da schon eingelesen hat. Seeken, etc. funktioniert alles ohne Probleme, nur ich kriege keine Daten in Datentypen größer als ein char rein (so sieht es jedenfalls momentan aus).
Merkwürdigerweise funktioniert das alles mit dem cstdio Interface tadellos. Warum? In der Referenz steht doch ganz eindeutig, dass der operator>> mit allen C/C++ Standarddatentypen klar kommt?
Warum dann dieser Reset des get-pointers auf -1 wenn ich versuche etwas einzulesen?
cya
liquid
ich versuche mit Hilfe der fstream Klasse eine binäre Datei (genauer gesagt eine TGA) auszulesen.
Mein früherer TGA-Loader benutze das cstdio Interface, aber das wollte ich mal ändern. Jedenfalls scheint es so zu sein, dass er operator >> der fstream Klasse nicht so ganz funktioniert.
Das Holen von Daten aus dem stream funktioniert bei mir nur mit char bzw. unsigned chars. Nun will ich aber ein short integer mit Daten füttern.
Alles stürzt mein ganzen Code hoffnungslos, sobald ich das versuche. Es liegt allerdings nicht direkt am Einlesen, sondern daran, dass nach dem Einlesen der get-pointer des streams auf -1 gesetzt wird. Ich finde das doch reichlich merkwürdig. Die Datei ist nämlich ein wenig länger, als die paar Bytes, die er da schon eingelesen hat. Seeken, etc. funktioniert alles ohne Probleme, nur ich kriege keine Daten in Datentypen größer als ein char rein (so sieht es jedenfalls momentan aus).
Merkwürdigerweise funktioniert das alles mit dem cstdio Interface tadellos. Warum? In der Referenz steht doch ganz eindeutig, dass der operator>> mit allen C/C++ Standarddatentypen klar kommt?
Warum dann dieser Reset des get-pointers auf -1 wenn ich versuche etwas einzulesen?
cya
liquid