lou*_*luo 11 c++ printf hex unsigned-char
我想打印以下散列数据.我该怎么办?
unsigned char hashedChars[32];
SHA256((const unsigned char*)data.c_str(),
data.length(),
hashedChars);
printf("hashedChars: %X\n", hashedChars); // doesn't seem to work??
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 16
十六进制格式说明符期望一个整数值,但您提供的是一个数组char.您需要做的是将char值单独打印为十六进制值.
printf("hashedChars: ");
for (int i = 0; i < 32; i++) {
printf("%x", hashedChars[i]);
}
printf("\n");
Run Code Online (Sandbox Code Playgroud)
因为您使用的是C++,所以您应该考虑使用C++ cout而不是printf(它对C++来说更为惯用).
cout << "hashedChars: ";
for (int i = 0; i < 32; i++) {
cout << hex << hashedChars[i];
}
cout << endl;
Run Code Online (Sandbox Code Playgroud)