Вот что я в настоящее время до сих пор:Как записать шестнадцатеричные значения символа в ASCII в текстовый файл?
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] << ' ';
}
}
Я пытался делать stream.hex, stream.setf (Std :: :: ИОС шестигранные), а также поиск Google для немного. Я также пробовал:
stream << stream.hex << (int)buf[i] << ' ';
Но это тоже не работает.
Вот пример некоторого вывода, что он в настоящее время производит:
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Я хотел бы выход выглядеть следующим образом:
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: Вы должны используйте const void * ptr и const char * префикс, чтобы уточнить, что вы не будете изменять эти буферы. – mmmmmmmm
@ rstevens: Хорошо! – xian
вот почему я так сильно переполняю переполнение стека. эти забавные небольшие проблемы возникают время от времени, и кто-то бросает фрагмент кода и его решение ... – MikeJ