1. 程式人生 > >Boost庫之Format的用法

Boost庫之Format的用法

今天在看程式碼的時候發現用到了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;
}