zoukankan      html  css  js  c++  java
  • boost format

    boost format是一个不错的格式化方法

    转载一篇博客:http://blog.csdn.net/yacper/article/details/8026007

    boost::format 基本使用

    而 Boost 的 Format 這個函式庫(官方介紹),基本上就是為了讓程式設計師可以更簡單地使用 C++ 的 iostream 來進行格式化輸出而開發的!如同 Heresy 在一開始就提過的,boost::format 提供了一個和 C 的 printf 類似的格式化字串(format string)的語法定義,來讓程式開發者可以非常簡單地做到和 printf 一樣效果的格式化輸出∼而同時,他也保有了 C++ 的 iostraem 的各項優勢,對於要做格式化輸出的 C++ 程式開發人員來說,boost::format 應該是個相當好用、也值得一試的的函式庫!

    boost::format 是一個 header-only 的函式庫,只要準備好 header 檔,不用預先編譯就可以使用了,在使用上相當地便利。而在這個函式庫裡,主要是提供了一個 format 的類別(註一),來讓程式開發者來做操作。下面是一個簡單的例子:

    #include <stdlib.h>
    #include <iostream>
    #include <boost/format.hpp>
    
    using namespace std; 
    
    int main( ) { 	cout << boost::format( "%2.3f, %d" ) % 1.23456 % 12 << endl; }

    黃底的部分,就是 boost::format 相關的程式了。首先,要使用 boost::format,我們必須要先 include「boost/format.hpp」這個檔案;只要 include 了這個檔案後,就可以使用 boost::format 的功能了。

    而 boost::format 最接近 printf 的用法,也就是上面這樣的形式(POSIX-printf style)了∼這樣的寫法在透過 cout 做輸出後的結果,會和

    printf( "%2.3f, %d", 1.23456, 12 );

    完全一樣。

    實際上,這邊是使用「"%2.3f, %d"」這個格式化字串,來建立一個 boost::format 的物件,並透過這個物件來做之後格式化的操作;而這邊所使用的格式化字串,和使用 printf 時是完全相同的。

    而除了上面這種「Posix-Printf style 」以外,也還有所謂的「simple style」(簡單風格)的用法可以使用,下面就是一個簡單的例子:

    cout << boost::format( "%1%, %2%" ) % 1.23456 % 12 << endl;

    在這種風格的寫法中,是在格式化字串裡,用「%1%」來代表之後的第一個變數、用「%2%」來代表第二個變數;透過這樣的定義,我們就可以自行調整變數的順序、同時也可以重複地使用某一項變數了∼例如:

    cout << boost::format( "%1%, %2%, %1%" ) % 1.23456 % 12 << endl;

    這樣寫的話,輸出的結果就會是「1.23456, 12, 1.23456」。 不過由於這個寫法沒有特別指定格式化的設定,所以所有變數都會用預設的方法做輸出。

  • 相关阅读:
    第几天?
    农历02__资料
    农历01
    VC6_预编译头
    QWebEngine_C++_交互
    Qt570_CentOS64x64_02
    Qt570_CentOS64x64_01
    QWebEngineView_CssVariables
    Windows__书
    Win7SDK
  • 原文地址:https://www.cnblogs.com/hong2016/p/6784646.html
Copyright © 2011-2022 走看看