我想在 C++ 中使用 boost 库格式化字符串。我正在做如下。
std::string msg = "Version: %1. Version %2.";
boost::format formatter(msg.c_str());
formatter % "v1" % "v2";
xyz_function(msg);
我们可以在一个语句中使用 sprintf 做到这一点,那么有没有一种方法可以优化上述 boost 实现以在一个语句或其他语句中形成字符串?
提前致谢。
最佳答案
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
提示。
关于c++ - 如何在boost库中格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45211807/