Esto es lo que actualmente tengo hasta ahora:¿Cómo se escriben los valores hexadecimales de un carácter en ASCII en un archivo de texto?
void WriteHexToFile(std::ofstream &stream, void *ptr, int buflen, char *prefix)
{
unsigned char *buf = (unsigned char*)ptr;
for(int i = 0; i < buflen; ++i) {
if(i % 16 == 0) {
stream << prefix;
}
stream << buf[i] << ' ';
}
}
He intentado hacer stream.hex, stream.setf (std :: ios :: hex), así como la búsqueda en Google para un poco. También lo intenté:
stream << stream.hex << (int)buf[i] << ' ';
Pero eso tampoco parece funcionar.
Aquí es un ejemplo de alguna salida que produce actualmente:
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Me gustaría que la salida se vea como la siguiente:
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
BTW: Usted debe use el prefijo const void * ptr y const char * para dejar en claro que no modificará estos búferes. – mmmmmmmm
@rstevens: ¡Está bien! – xian
es por eso que me gusta tanto el desbordamiento de pila. estos pequeños problemas divertidos surgen de vez en cuando y alguien arroja un fragmento de código y lo resuelve ... – MikeJ