Как напечатать unsigned char[] как HEX в C++?
Я хотел бы напечатать следующие хэшированные данные. Как мне это сделать?
unsigned char hashedChars[32];
SHA256((const unsigned char*)data.c_str(),
data.length(),
hashedChars);
printf("hashedChars: %Xn", hashedChars); // doesn't seem to work??
1 ответов
спецификатор шестнадцатеричного формата ожидает одно целое значение, но вместо этого вы предоставляете массив char
. Что вам нужно сделать, это распечатать char
значения по отдельности в виде hex значений.
printf("hashedChars: ");
for (int i = 0; i < 32; i++) {
printf("%x", hashedChars[i];
}
printf("\n");
поскольку вы используете C++, хотя вы должны рассмотреть возможность использования cout
вместо printf
(это более идиоматично для C++.
cout << "hashedChars: ";
for (int i = 0; i < 32; i++) {
cout << hex << hashedChars[i];
}
cout << endl;