%02d等同于std :: stringstream?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (83)

我要输出的整数一个std::stringstream具有相当于格式printf%02d。有一个更简单的方法来实现这一点比:

std::stringstream stream;
stream.setfill('0');
stream.setw(2);
stream << value;

是否有可能将某种形式的标志流式传输给stringstream(伪代码):

stream << flags("%02d") << value;
提问于
用户回答回答于

,做两个fillwidth一次:

stream << std::setfill('0') << std::setw(2) << value;

编写自己的对象时不难,当插入到流中时,执行两个函数:

stream << myfillandw( '0', 2 ) << value;

struct myfillandw
{
    myfillandw( char f, int w )
        : fill(f), width(w) {}

    char fill;
    int width;
};

std::ostream& operator<<( std::ostream& o, const myfillandw& a )
{
    o.fill( a.fill );
    o.width( a.width );
    return o;
}
用户回答回答于

可以使用Boost.Format:

stream << boost::format("%|02|")%value;

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    46 粉丝0 提问2 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券