0

$1この時点まで、私は FormatString を使用して、番号付き変数 ( 、など)を使用して多言語文字列をフォーマットしてきまし$2たが、クロスプラットフォームの互換性はありません。

sprintf同じことを行うクロスプラットフォームのような機能はありますか? メモリなどを割り当てる必要はありません。文字列内のさまざまな場所にある可能性のある番号付きの型付き疑似変数を処理できる必要があるだけです。

同様の機能を提供する場合は、Boost で問題ありません。

4

1 に答える 1

1

boost::format を見てみましょう。私はしばらくそれを使用してきましたが、非常にうまく機能します。

別のオプションは、出力のフォーマットに std::stringstreams を使用することです。ブーストを使用したくない、または使用できない場合は、それがほぼ唯一の移植可能なオプションであり、ボーナスとして、構文がもう少し読みやすくなります。

どちらのライブラリもタイプ セーフであるため、通常の C API と比較して、C++ コンテキストでも使用するのにはるかに優れた安全な方法です。

于 2012-08-15T23:49:38.013 に答える