今天在看代码的时候发现用到了Boost format,之前没有接触过,就百度了一下,然后就做个笔记了,下次备用。
Boost库是一个可移植的、提供源代码的c++库,是作为c++标准库的后备。Boost::format可以看成是Boost库中的一个字符串格式化库。
format主要是用来格式化std::string字符串的,同时也可以配合std::cout进行输出的格式空时。使用format需要包含头文件:
#include "boost/format.hpp"
boost::format的格式一般为:
boost::format(" format-string ")%arg1 %arg2 %arg3 ... %argN ;
format-string代表需要格式化的字符串,后面用重载过的%跟参数
具体的使用参见下面这个程序:
//https://blog.csdn.net/racaljk/article/details/19241369
#include <iostream>
#include <boost/format.hpp>
using namespace std;
int main(int argc, char **argv)
{
cout<<boost::format("%1% \n%2% \n%4% \n%3%") %"first" %"second" %"third" %"fourth"<<endl;
cout<<endl;
boost::format fmt("%1% \n%2% \n%4% \n%3%");
fmt %"first";
fmt %"second";
fmt %"third";
fmt %"fourth";
string s=fmt.str();
cout<<s<<endl;
cout << boost::format("\n\n%s"
"十进制 = [%d]\n"
"格式化的十进制 = [%5d]\n"
"格式化十进制,前补'0' = [%05d]\n"
"十六进制 = [%x]\n"
"八进制 = [%o]\n"
"浮点 = [%f]\n"
"格式化的浮点 = [%.4f]\n"
"科学计数 = [%e]\n"
) % "example :\n" % 15 % 15 % 15 % 15 % 15 % 15.01 % 15.01 % 15.01 << endl;
return 0;
}
详细的解释可以参见网友的博客:https://blog.csdn.net/racaljk/article/details/19241369