(c ++) Liest die .dat-Datei mit ifstream als Hex

Dies ist mein erster Beitrag. Es tut mir leid, wenn ich gegen ungeschriebene Regeln verstoße. : P Ich bin ein Anfänger / Fortgeschrittener und benötige Hilfe bei diesem Programm.

Ich versuche, eine .dat-Datei als HEX in eine große Zeichenfolge zu infilieren / zu lesen / zu übertragen (was auch immer).

Ich möchte es nicht als Text lesen. Ich möchte das Hex-Format, damit ich die Zeichenfolge durchsuchen und Änderungen daran vornehmen kann. (Wie ein automatischer Hex-Editor)

Ex. Meine Datei "00000000.dat" hat eine Größe von ca. 7 KB.

Im Hex-Editor sieht das Hex so aus:

0A 00 00 0A 00 05 4C 65 76 65 6C 07 00 06 42 6C 6F 63 6B 73 00 00 80 00 07 FF 39
01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02
FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF
39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03
02 FF 3F 00..... for a while...

Ich brauche alles in einer String-Variablen (vorzugsweise ohne Leerzeichen).

Mein aktueller Code ist zum Kotzen und druckt vorerst nur das Ergebnis. (habe es von ehow bekommen) und scheint auszuwählen, was es eingeben / drucken will.

#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

int main()
{
    ifstream input;
    input.open("00000000.dat");

    unsigned char h1,h2;

    do
    {
        input >> h1;
        cout << hex << (unsigned int)h1;
        input >> h2;
        cout << hex << (unsigned int)h2;
    }while(!input.eof());

cin.get();
return 0;
}

Es ist eine große Datei, daher kann ich nicht zeigen, was sie druckt, aber es fehlen einige Bytes. (ex "0A 00 00 0A 00 05 ....." wird als "00 05 ....." gedruckt) Dies gilt auch für das Ende.

Entschuldigung, wenn ich es nicht gut erklärt habe :(

Antworten auf die Frage(2)

Ihre Antwort auf die Frage