У меня есть массив символов, состоящий из шестигранных значений, который выглядит примерно так:C fprintf шестнадцатеричного некорректного вывод
char str[] =
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff";
После манипулирования этой строки, я хочу fprintf
эту строку в файл, используя это заявление:
fprintf(fp, "%X\n", str);
, но я получаю результат, похожий на этот:
65C58A20
Кажется, что он сгущен до одного шестнадцатеричного номера. Как я могу fprintf
str
в том же виде, как я заявил выше, с отдельными шестнадцатеричными значениями для каждого отдельного байта?
Might 'Sprintf()' работа? Используйте его, чтобы преобразовать массив символов в строку, а затем распечатать эту строку для файла? – verbose
Почему '% X' ?! Вы прочитали руководство для 'printf'? –
'fprintf (fp,"% 02X \ n ", (unsigned char) str [index]);' – BLUEPIXY