示例代码:
#include <iostream> #include <string> using namespace std; #include <boost/format.hpp> using namespace boost; int main(int argc, char*argv[]) { //顺序不必一致 format fmter("%2% %1%"); fmter % 100; fmter % 200; cout<<"fmter:"<<fmter<<endl; //可重用 fmter % 11; fmter % 22; cout<<"fmter:"<<fmter<<endl; //可直接转为字符串 string s = fmter.str(); cout<<"s:"<<s.c_str()<<endl; string s2 = str(format("%2% %1% %2% %1%") % "World" % "Hello"); cout<<"s2:"<<s2.c_str()<<endl; //可以使用printf指示符 cout<<format("%3.1f, %d") % 3.2 % 8<<endl; //其他用法 cout<<format("(x,y) = (%+5d, %+5d)") % -23 % 35<<endl; cout<<format("(x,y) = (%|+5|, %|+5|)") % -23 % 35<<endl; cout<<format("(x,y) = (%1$+5d, %2$+5d)") % -23 % 35<<endl; cout<<format("(x,y) = (%|1$+5|, %|2$+5|)") % -23 % 35<<endl; return 0; }
输出结果: