我printf在C++中有一个输出语句,如下所示:
for(int i=0; i<6; i++)
printf("%.2X", (unsigned char) iter->hwaddress[i]);
Run Code Online (Sandbox Code Playgroud)
我需要输出std::cout,我试着这样做:
for(int i=0; i<6; i++)
cout << hex << (unsigned char) iter->hwaddress[i];
Run Code Online (Sandbox Code Playgroud)
但这只是给了我:
?:?:w:?:?:
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?
你需要把它投射到hex:
char c = 15;
cout << hex << setfill('0') << setw(2) << static_cast<int>(c); // prints "0f"
Run Code Online (Sandbox Code Playgroud)
char只影响整数I/O,它char不被认为是 - 所以你的代码最终仍然输出实际的chars.
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |