如何使用操纵器使用填充左零来格式化我的十六进制输出

bba*_*zso 10 c++ manipulators

下面的小测试程序打印出:

并且SS编号IS = 3039

我希望用左边填充的零打印出数字,使总长度为8.所以:

并且SS编号IS = 00003039(注意留下的额外零填充)

我想知道如何使用操纵器和字符串流来完成此操作,如下所示.谢谢!

测试程序:

#include <iostream>
#include <sstream>
#include <string>
#include <vector>

int main()
{

    int i = 12345;
    std::stringstream lTransport;

    lTransport << "And SS Number IS =" << std::hex << i << '\n';

    std::cout << lTransport.str();

}
Run Code Online (Sandbox Code Playgroud)

Dr.*_*son 9

你看过图书馆的setfill和setw操纵器了吗?

#include <iomanip>
...
lTransport << "And SS Number IS =" << std::hex << std::setw(8) ;
lTransport << std::setfill('0') << i << '\n';
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

And SS Number IS =00003039
Run Code Online (Sandbox Code Playgroud)