使用Java 5/6中的String.format()方便地在C ++中格式化字符串?

时间:2011-07-21 18:10:00

标签: c++ string format

是否有一个通用函数可以执行sprintf类型字符串格式化而不必提供固定大小的缓冲区,它返回string类实例?

我知道stringstream它没有做我想要的事情,我不想像输出语句那样硬编码令牌的位置。

我希望能够定义像sprintf这样的模式让你,但没有C行李和更惯用的面向对象C ++方式。

也许某些函数使用sprintf执行stringstream执行的操作并生成string个对象? Java中String.format()所做的便利性或Python中等效的String格式化语法。

2 个答案:

答案 0 :(得分:10)

The Boost Format Library

  

<boost/format.hpp>格式类以类型安全的方式提供printf - 就像格式化一样,允许输出用户定义的类型。

答案 1 :(得分:0)

如果你不使用Boost.Format或Boost.Locale,你可以使用我的简单stringstream包装器或进一步包装它:

fakeformat

示例:

REQUIRE( ff::format("{2}ff{1}").with('a').also_with(7).now()=="7ffa" );

Ideone