我想在C ++中使用boost库格式化字符串。我正在做如下。
std::string msg = "Version: %1. Version %2.";
boost::format formatter(msg.c_str());
formatter % "v1" % "v2";
xyz_function(msg);
我们可以在一个语句中使用sprintf来做到这一点,那么有没有办法在一个语句或其他语句中优化字符串形成的上述boost实现?
先谢谢。
答案 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 demonstration,Boost Library Format; getting std::string了解boost::str
小费。