是否有一个通用函数可以执行sprintf
类型字符串格式化而不必提供固定大小的缓冲区,它返回string
类实例?
我知道stringstream
它没有做我想要的事情,我不想像输出语句那样硬编码令牌的位置。
我希望能够定义像sprintf
这样的模式让你,但没有C行李和更惯用的面向对象C ++方式。
也许某些函数使用sprintf
执行stringstream
执行的操作并生成string
个对象? Java中String.format()所做的便利性或Python中等效的String格式化语法。
答案 0 :(得分:10)
<boost/format.hpp>
格式类以类型安全的方式提供printf
- 就像格式化一样,允许输出用户定义的类型。
答案 1 :(得分:0)
如果你不使用Boost.Format或Boost.Locale,你可以使用我的简单stringstream包装器或进一步包装它:
示例:
REQUIRE( ff::format("{2}ff{1}").with('a').also_with(7).now()=="7ffa" );