C++ 用C++;与Java5/6中的String.format()一样方便?

C++ 用C++;与Java5/6中的String.format()一样方便?,c++,string,format,C++,String,Format,是否有一个通用函数可以执行sprintf类型字符串格式化,而不必提供固定大小的缓冲区,该缓冲区返回String类实例 我知道stringstream它不符合我的要求,我不想按要求硬编码输出语句中标记的位置。 我希望能够定义一个模式,比如“代码> SeaTrf让你,但没有C的行李,更习惯于以面向对象的C++方式。 也许某个函数使用stringstream执行sprintf所做的操作,并生成string对象?类似于Java中的便利性或Python中的等效字符串格式语法的东西。: 格式类以类型安全的方

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

我知道
stringstream
它不符合我的要求,我不想按要求硬编码输出语句中标记的位置。

<>我希望能够定义一个模式,比如“代码> SeaTrf让你,但没有C的行李,更习惯于以面向对象的C++方式。

也许某个函数使用
stringstream
执行
sprintf
所做的操作,并生成
string
对象?类似于Java中的便利性或Python中的等效字符串格式语法的东西。

格式类以类型安全的方式提供类似于
printf
的格式,允许输出用户定义的类型


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

例如:

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

您能否具体说明什么
stringstream
不能满足您的要求?将
stringstream
中的各种输出规范相结合,您可以使用
sprintf
执行的无法复制的操作非常少。请参阅: