2017-07-20 10 views
-1

C++でboostライブラリで文字列を書式化したいと思います。私は以下のようにしています。ブーストライブラリで文字列を書式設定する方法

std::string msg = "Version: %1. Version %2."; 
boost::format formatter(msg.c_str()); 
formatter % "v1" % "v2"; 
xyz_function(msg); 

私たちはとても1文または他の何かに文字列を形成するためのブースト実装の上に最適化する方法がある1つのステートメントではsprintfでそれを行うことができますか?

ありがとうございました。あなたが行うことができますので、

+3

[Boost形式のドキュメントの最初のページの先頭にある](http://www.boost.org/doc/libs/1_64_0/libs/format/doc/format.html)は1行です例。 –

答えて

1

boost::formatは、文字列にキャストすることができます(とIIRC、それはまた、明示的な変換機能を持っている):

xyz_function(boost::str(boost::format("Version: %1. Version %2.") % "v1" % "v2"))

または

xyz_function((boost::format("Version: %1. Version %2.") % "v1" % "v2").str())

here用を参照してください。例とデモンストレーション、boost::strチップの場合はhereです。

+0

ああ、私の悪い - あなたはその結果(編集する)の周りに 'boost :: str'をラップする必要があります。おかげさまで – hnefatl

+0

それは動作します.. – Neel

+0

1つの質問:それは "%1"または "%1%"でしょうか? – Neel

関連する問題