Wie hex Werte aus einer Datei mit fstream in C ++ gelesen werden?

8

Wie der Titel sagt, wie liest man Hex-Werte mit fstream ?

Ich habe diesen Code: (Sagen wir, wir haben "FF" in der Datei.)

%Vor%

aber das gibt mir keine Ausgabe statt ff . Ich weiß, es gibt ein fscanf(fp, "%x", val) , aber ich bin neugierig, gibt es eine Möglichkeit, dies mit Stream-Bibliothek zu tun.

AKTUALISIEREN :

Mein Code war die ganze Zeit richtig, es stellt sich heraus, dass mein Fehler war, dass ich "FFF" nicht lesen konnte, und setze ihn in die Variable a, b, c wie folgt

%Vor%

Kann mir jemand dabei helfen? muss ich alle HEX-Werte, die ich mit Leerzeichen lesen möchte, trennen? weil infile >> hex >> setw(1) nicht funktioniert ..

    
ardiyu07 18.02.2011, 11:23
quelle

4 Antworten

8

Sie können den Hex-Modifikator verwenden

%Vor%     
Bernd Elkemann 18.02.2011, 11:31
quelle
5

Sie müssen std::hex beim Lesen verketten, genauso wie Sie es zum Schreiben verketten:

%Vor%     
Nekresh 18.02.2011 11:31
quelle
5

Das funktioniert:

%Vor%     
Oliver Charlesworth 18.02.2011 11:34
quelle
0

Stellen Sie außerdem sicher, dass Ihre Eingabedatei mit einem Hex-Editor und nicht mit einem normalen Texteditor geschrieben wurde. Andernfalls wird eine Datei foo.txt, die ein Zeichen 'a' enthält, als 0x61 gelesen und als 0x61 anstelle von 0xa gedruckt. Ein netter Hexeditor für Linux ist "Bless".

    
Than21 17.04.2017 14:35
quelle

Tags und Links