boost::formatの使い方
どうもC++のマニピュレータを用いた文字列フォーマットはとっつきにくく、いつまでたっても慣れないので、使用できる環境ではboost::formatを使用しています
基本のパターン。printf()
のようなフォーマットで出力できます。引数は%
で区切って順に設定します
#include <boost/format.hpp> #include <iostream> int main() { // 基本的な使い方 const char* name = "Boost Format"; const int version = 2; std::cout << boost::format("Hello '%s' version %d\n") % name % version; ...
# 出力結果 Hello 'Boost Format' version 2
対応する引数の位置を%N%
で指定できます
// 引数順番指定 std::cout << boost::format("Hello '%2%' version %1%\n") % version % name;
# 出力結果 Hello 'Boost Format' version 2
出力桁数の指定、0埋指定もprintf()
と同様です
// 出力桁数 std::cout << boost::format("%.3f\n") % 1.23456; // 0埋め std::cout << boost::format("%08X\n") % 256;
# 出力結果 1.235 00000100
#
で基数の出力が可能です
// 基数表示 std::cout << boost::format("decimal %#d\n") % 128; std::cout << boost::format("octal %#o\n") % 128; std::cout << boost::format("hexadecimal %#X\n") % 128;
# 出力結果 decimal 128 octal 0200 hexadecimal 0X80
booleanをtrue
, false
で出力可能です
// boolean表示 std::cout << boost::format("%1$b == %1$d\n") % true;
# 出力結果 true == 1
最近のコメント