文字列および I/O の書式設定 (Modern C++)
C++ でだけ、書式指定文字列の I/O に使用する複雑になります。別の方法として、標準外でも、C++ Boost ライブラリの Boost.Format を使用できます。ライブラリを Boost Web Boost サイトからダウンロードできます。
Boost.Format の利点は以下のとおりです:
: safe タイプ セーフ、およびスロー不足エラーの例では、仕様または多すぎる項目の例外。
拡張可能: ストリーム転送できる型のしくみ。
:便利 標準 Posix と同様のファイル形式の文字列。
Boost.Format が安全、拡張可能である だけC++ でビルドが、パフォーマンス最適化されません。パフォーマンスの最適化を要求すると、quick、使いやすい検討してください sprintf、および C を printf。ただし、脆弱性から拡張または安全ではありません。(セキュリティが強化されたバージョンがありますが、わずかながらパフォーマンスが低下します。詳細については、printf_s、_printf_s_l、wprintf_s、_wprintf_s_l と sprintf_s、_sprintf_s_l、swprintf_s、_swprintf_s_lを参照)。
次のコードは、Boost 形式の機能の一部を示しています。
string s = str( format("%2% %2% %1%\n") % "world" % "hello" );
// s contains "hello hello world"
for( auto i = 0; i < names.size(); ++i )
cout << format("%1% %2% %|40t|%3%\n") % first[i] % last[i] % tel[i];
// Georges Benjamin Clemenceau +33 (0) 123 456 789
// Jean de Lattre de Tassigny +33 (0) 987 654 321