我想cout输出一个带前导零的int,因此值1将打印为001,值25打印为025.我怎样才能做到这一点?
假设我有一个dword,我想用十六进制输出std :: cout和left-pad with zero,所以0xabcd将显示为0x0000abcd.看起来你必须这样做:
uint32_t my_int = 0xabcd;
std::cout << "0x" << std::hex << std::setw(8) << std::setfill('0')
<< my_int << std::endl;
Run Code Online (Sandbox Code Playgroud)
对于可以在C中完成的事情来说,这似乎很荒谬printf("0x%08X\n", my_int);.有没有办法让这个更短,同时仍然使用std :: cout输出(除了使用命名空间std)?