我有类似
的东西unsigned x = 16;
unsigned* p = &x;
std::cout << std::hex << std::setw(16) << std::setfill('0') << x << std::endl;
std::cout << std::hex << std::setw(16) << std::setfill('0') << p << std::endl;
输出:
0000000000000010
000x7fffc35ba784
的ostream ::运营商LT;&LT;为此超负荷?我可以用C正确地写这个,但我想知道是否有一个正确的方法来使用iostream。
答案 0 :(得分:7)
像这样使用internal
:
#include <iostream>
#include <iomanip>
int main()
{
unsigned x = 16;
unsigned* p = &x;
std::cout << std::hex << std::setw(16) << std::setfill('0') << x << std::endl;
std::cout << std::hex << std::setw(16) << std::setfill('0') << p << std::endl;
std::cout << std::internal << std::hex << std::setw(16) << std::setfill('0') << p << std::endl;
}
这给出了:
0000000000000010
000x7fffd123c1a4
0x007fffd123c1a4