PDA

View Full Version : [C++]Aprire un file in binario e vederne il contenuti in esadecimale


LNdemon
05-09-2005, 12:37
Da titolo, come faccio ad aprire un file binario, nel mio caso un immagine bmp, e vederne il codice in esadecimale ?

grazie

71104
05-09-2005, 13:32
con qualsiasi editor esadecimale, come ad es. hiew.

LNdemon
05-09-2005, 13:40
Si, pero io devo farlo da codice c++ :stordita:

Qu@ker
05-09-2005, 13:41
Non so se ho capito bene. Intendi qualcosa del genere:

#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
if (argc != 2)
return 1;

ifstream in(argv[1], ios::binary);

in.seekg (0, ios::end);
int len = in.tellg();

char *buffer = new char [len];

in.seekg (0, ios::beg);
in.read (buffer, len);
in.close();

unsigned char *pc = reinterpret_cast<unsigned char *>(buffer);
cout.setf (ios_base::hex, ios_base::basefield);
cout.fill('0');
for (int i = 0; i < len; ++i){
if (i % 16 == 0)
cout << '\n';
cout.width(2);
cout << static_cast<int>(pc[i]) << ' ';
}
cout << endl;

delete [] buffer;
}

?

LNdemon
05-09-2005, 13:52
si, proprio questo, grazie :)