Datei einlesen
-
Hallo.
Habe mich in einer C++-Referenz schlau gemacht über Datei I/O und möchte nun eine Datei einlesen (ein aufgezeichneter MPEG-Stream), erstmal 32 Byte in Hex.
Leider kommt bei dem Quelltext unten die Meldung left of '.seekg' must have class/struct/union type.
Kann mir jemand weiterhelfen? Ist der Weg, den ich da gehe, überhaupt der richtige?
#include <fstream.h>
void main () {
int array[32];
ifstream* ein= new ifstream("datei");
int i;
for (i=0; i < 31; i++)
{
if (ein.seekg(i))
{
*ein >> hex >> array[i];
cout << array[i] << endl;
}
}
}
-
Entweder
ifstream ein("datei"); ein.seekg();
oder
ifstream* ein = new ifstream("datei); ein->seekg();
[edit]
char ch[32]; ifstream ein("datei"); ein.read(ch, 32);
Das wäre einfacher und macht das gleiche.
[/edit]
-
Thanks. Nun geht's, allerdings ist die Ausgabe nur eine einzelne 0...
-
Ich möchte aber keine Chars einlesen, sondern Hex-Werte. Komme nicht weiter.
-
mac241 schrieb:
Ich möchte aber keine Chars einlesen, sondern Hex-Werte. Komme nicht weiter.
Jedes char ist genau ein Byte groß.
Dieses char hat auch einen int-Wert. Und wie man Ganzzahlen in Hex umwandelt wirst du ja wohl wissen.Und warum müssen es umbedingt Hex-Werte sein?
Wenn du etwas in der Form:
7F
haben willst, dann wirst du das kaum in einem Integer speichern können.
Alles andere ist reines Umrechnen.
-
das funzt:
#include <fstream.h> int main (int argc, char **argv) { unsigned char array[32],i; ifstream ein("datei"); for(i=0; i<31; i++) { ein>>array[i]; cout<<hex<<(int)array[i]<<' '; } cout<<endl; }
so viel zum thema in C++ sei alles viel einfacher...