Boost庫基礎 字串與文字處理 format

2021-10-04 11:07:26 字數 1626 閱讀 7787

format

#include using namespace boost;
用法:

#include using namespace boost;

int main()

//結果

sum:1+2=3

(2 + 5) * 5 = 35

因此:format(...) % a % b % c 可以理解成 format(...) << a << b << c
類似於 printf("(%d + %d) * %d = %d\n", 2, 5, 5, (2 + 5)*5);
類摘要format並不是乙個真正的類,而是乙個typedef,真正的實現是basic_format,它的宣告如下:

以下為格式化語法:

除此之外,還增加了新的格式:

%|spec|:兩邊增加豎線,可以更好區分格式化選項與普通字元

//上圖中可以寫成這樣

format fmt("%|05d|\n%|-8.3f|\n%| 10s|\n%|05x|\n");

%n%:標記第n個引數,相當於佔位符,不帶任何其他都格式化選項。

高階用法:

//把格式化字串第argn位置的輸入引數固定為val,即使呼叫clear()也保持不變,除非呼叫

//clear_bind() 或 clear_binds();

basic_format& bind_arg(int argn,const t& val)

//取消格式化字串第argn位置的引數繫結

basic_format& clear_bind(int argn)

//取消格式化字串所有位置的引數繫結,並呼叫clear()

basic_format& clear_binds();

//設定格式化字串第itemn位置都格式化選項,manipulator是乙個boost::io::group()返回的物件

basic_format& modify_item(int itemn,t manipulator)

//它是乙個模板函式,最多支援10個引數,可以設定輸入/輸出流操縱器以指定格式或輸入引數值

boost::io::group(t1 a1,...,var const& val)

用法:

#include #include #include using namespace boost;

using boost::io::group;

int main()

文字處理 字串

字串常用操作 漢字到拼音的轉換 x 125 so o x so 175 sh x x sh 7d se e x se 1.250000e 02 d,c 65,65 65,a print format 1 3 保留3位小數 0.333 format 3.5 格式化為百分數 350.000000 for...

Boost庫 字串操作

結合boost官網 由於這一章內容過多,我將採用四個小章,精簡原文四個小部分內容。第四小章還包含了題目及講解。區域設定 setlocale lc all,locale global std locale german 設定全域性區域德語環境 一 將字串所有字元轉成大寫 boost algorithm...

boost庫文字處理回顧20200908

include stdafx.h include include include boost lexical cast.hpp include boost format.hpp include boost algorithm string.hpp using namespace boost usin...