Ifstream Von Char auf Int oder Float
-
Hallo
Ich lerne grade mit Ifstreams umzugehen.
Im Buffer wird der Inhalt gespeichert den ich mit Read auslese.
Buffer ist wegen Read ein Char.Nun bei angegebenen Offset befindet sich aber ein Float oder Integer.
Wenn ich also es mit cout ausgebe kommt nichts stehen.
-
Sorry, aber dein Beschreib ist für dem Mülleimer.

Bring doch bitte mal ein wenit eindeutigen Code, dann kann man dir helfen.

-
Mist
Also
166 Height 4 byte Float
170 Type 4 byte Integer
174 Amplitude 4 byte Float
178 Phase 4 byte Float
182 Surface Curve Level 4 byte Float
186 Texture Ciclyng 4 byte IntegerIm Offset 166-186 befinden sich einige Informationen
Ich möchte die auslesen aber im Read muss als erster Parameter ein Char sein
Die dort sind aber Floats / IntsFile.seekg(174); buffer=new char[4]; File.read(buffer,4); cout<<buffer<<endl; delete buffer;wenn ich das so machen würde käme beim cout pure leere raus.
-
Lies jedes Stückchen einzeln aus und dann caste es, wenn es sein muss von char* zu float/int.
-
Das versteh ich jetzt nicht
Wie muss es denn aussehen?
buffer=new char[4]; for (int i=0;i<4;i++){ File.seekg(174+i); File.read(buffer,1); } cout<<"Amplitude : "<<buffer<<endl; delete buffer;So kommt bei mir nur irgend ein blödsinn raus
-
Hallo,
z.B.:
File.seekg(174); buffer=new char[4]; File.read(buffer,4); cout << *(reinterpret_cast<float*>(buffer)) << endl; delete buffer;MfG,
Probe-Nutzer
-
Oder:
File.seekg(174); char buffer[ 4 ]; File.read(buffer,4); cout << *(reinterpret_cast<float*>(buffer)) << endl;oder:
File.seekg(174); float x; File.Read( ( char* )&x, sizeof( float ) ); cout << x << endl;