Meine Binärdatei sieht so aus.lesen 32bit Integer aus Binärdatei
00000000: 0000 0803 0000 ea60 0000 001c 0000 001c
00000010: 0000 0000 0000 0000 0000 0000 0000 0000
linke Spalte ist Adresse.
Ich habe gerade versucht 0000 0803
(= 2051) zu lesen, wie
ifstream if;
if.open("file");
uint32_t a;
if >> a;
folgt wie erwartet ... Es hat nicht funktioniert :-(
a
nur 0 nach Ausführung war.
ich long, int, unsigned int, unsigned long
versucht. alle gescheitert
Warum diese nicht arbeiten und wie kann ich das Ziel erreichen
Haben Sie überprüfen, ob die Datei korrekt geöffnet wurde? Wie ist der Status des Streams nach dem Lesen? (Fehler oder schlechter Zustand?) –
erinnern über Open-Modus - zweites Argument zu öffnen (http://en.cppreference.com/w/cpp/io/ios_base/openmode). – Hcorg
Und Sie müssen wissen, welche Endianness beim Speichern der Datei verwendet wurde. Little-Endian (z. B. Intel x86): niedrigstwertiges Byte an der niedrigsten Adresse, Big-Endian (z. B. das Internet): höchstwertiges Byte an der niedrigsten Adresse. –