(c++) Lesen .dat-Datei als hex mit ifstream

Dies ist mein Erster Beitrag also sorry wenn ich Pause alle ungeschriebenen Regeln. 😛 ich bin ein Anfänger/fortgeschrittene Programmierer und ich brauche Hilfe mit diesem Programm.

Ich versuche infile/Lesen/ifstream (was auch immer) ein .dat-Datei als HEX in einen großen string.

Ich will nicht, es zu Lesen, als text. Ich möchte den hex-format, so kann ich die Suche auch über die string-und die änderungen daran vornehmen. (Wie eine automatische hex-editor)

ex. meine Datei "00000000.dat" ist ~7kb groß.

Im hex editor die hex wie folgt Aussehen:

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...

Muss ich alles in eine string-variable (keine Leerzeichen enthalten vorzugsweise).

Meinen aktuellen code sucks und jetzt druckt nur das Ergebnis. (habe es von ehow) und scheint zu wählen, und wählen, was es will-input/print.

#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, so kann ich nicht zeigen, yo, was er druckt, aber es fehlen einige bytes. (ex - "0A 00 00 0A 00 05....." Drucke "00 05.....") dies gilt auch für das Ende als gut.

Sorry, wenn ich nicht erklären, es gut 🙁

InformationsquelleAutor mrg95 | 2013-05-07
Schreibe einen Kommentar