我想用C ++中的boost库格式化字符串。我正在做如下。
std::string msg = "Version: %1. Version %2.";
boost::format formatter(msg.c_str());
formatter % "v1" % "v2";
xyz_function(msg);
Run Code Online (Sandbox Code Playgroud)
我们可以在一条语句中使用sprintf做到这一点,因此是否有一种方法可以优化上述boost实现以在一条语句或其他语句中形成字符串?
提前致谢。
一个boost::format对象可以转换为字符串,并且还具有显式转换功能。
boost::format fmt
= boost::format("Luke %1% and Han %2%.") % "Skywalker" % "Solo";
Run Code Online (Sandbox Code Playgroud)
因此,可以使用以下任一方法:
std::string fmtStr = boost::str(fmt);std::string fmtStr = fmt.str();参见示例和演示,以及Boost库格式;获得std :: string的boost::str提示。