用0表示前面的数字

Arm*_*yan 3 c++ formatting iostream setw iomanip

可能重复:
使用C++输出运算符(printf等效)打印前导零?

#include <iostream>
#include <iomanip>
int main()
{
   int n = 16;
   std::cout << ???(5) << n << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我希望输出以00016
setw()空格为前缀.是不是可配置哪些字符前置setw()

我最终的目标是在4个位置打印一个16字节的十六进制数字.像这样的东西:

#include <iostream>
#include <iomanip>
int main()
{
    unsigned short n = 0xA7;
    std::cout << std::hex << ???(4) << n << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我希望得到这个输出: 00A7

Ign*_*ams 5

你还需要setfill('0').