如何格式化boost库中的字符串

时间:2017-07-20 10:14:22

标签: c++ boost

我想在C ++中使用boost库格式化字符串。我正在做如下。

std::string msg = "Version: %1. Version %2.";
boost::format formatter(msg.c_str());
formatter % "v1" % "v2";
xyz_function(msg);

我们可以在一个语句中使用sprintf来做到这一点,那么有没有办法在一个语句或其他语句中优化字符串形成的上述boost实现?

先谢谢。

1 个答案:

答案 0 :(得分:4)

boost::format 对象可以转换为字符串,并且还具有显式转换函数。

boost::format fmt
    = boost::format("Luke %1% and Han %2%.") % "Skywalker" % "Solo";

所以可以使用其中任何一个:

  • std::string fmtStr = boost::str(fmt);
  • std::string fmtStr = fmt.str();

请参阅example and demonstrationBoost Library Format; getting std::string了解boost::str小费。