部落格291 Go的printf輸出格式化引數列表

2021-10-07 02:04:24 字數 2540 閱讀 5372

內容:記錄go的printf的格式化引數列表

%v    值的預設格式。

預設的格式是:

bool:

%t int

, int8 :

%d uint, uint8 :

%d,%x (

if printed with %#v)

float32, complex64 :

%gstring:

%schan:

%p pointer:%p%

+v 新增欄位名(如結構體)

%#v  相應值的go語法表示

%t 相應值的型別的go語法表示

%% 字面上的百分號,並非值的佔位符 

%t true 或 false

%b 二進位制表示

%c 相應unicode碼點所表示的字元

%d 十進位制表示

%o 八進位制表示

%q 單引號圍繞的字元字面值,由go語法安全地轉義

%x 十六進製制表示,字母形式為小寫 a-f

%x 十六進製制表示,字母形式為大寫 a-f

%u unicode格式:u+

1234,等同於 "u+%04x"

%b 無小數部分的,指數為二的冪的科學計數法

%e 科學計數法,例如 -

1234.456e+78

%e 科學計數法,例如 -

1234.456e+78

%f 有小數點而無指數,例如 123.456

%g 根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出

%g 根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出

%s 字串或切片的無解譯位元組

%q 雙引號圍繞的字串,由go語法安全地轉義

%x 十六進製制,小寫字母,每位元組兩個字元

%x 十六進製制,大寫字母,每位元組兩個字元

%p 十六進製制表示,字首 0x (用於指標)

對於復合物件,使用如下規則進行列印:

struct:

array, slice:

[elem0 elem1 ...

] maps: map[key1:value1 key2:value2]

pointer to above:&,

&,&map[

]寬度和精度:

寬度是在%之後的值,如果沒有指定,則使用該值的預設值,

精度是跟在寬度之後的值,如果沒有指定,也是使用要列印的值的預設精度.

%f:default width,

default precision

%9f width 9

,default precision

%.2f

default width, precision 2

%9.2f width 9

, precision 2

%9.f width 9

, precision 0

注意:1、對數值而言,寬度為該數值占用區域的最小寬度;精度為小數點之後的位數。

2、但對於 %g/

%g 而言,精度為所有數字的總數。

例如,對於123.45,格式 %

6.2f會列印123.45,而 %

.4g 會列印123.5。%e和%f的預設精度為6;

但對於 %g 而言,它的預設精度為確定該值所必須的最小位數。

對大多數值而言:寬度為輸出的最小字元數,如果必要的話會為已格式化的形式填充空格。

對字串而言:精度為輸出的最大字元數,如果必要的話會直接截斷。

寬度是指"必要的最小寬度"

. 若結果字串的寬度超過指定寬度時, 指定寬度就會失效。

若將寬度指定為`*'時, 將從引數中取得寬度值,其實這個在其它語言也有類似用法

其它:+ 總列印數值的正負號;對於%q(%

+q)保證只輸出ascii編碼的字元。

- 左對齊

# 備用格式:為八進位制新增前導 0(%#o),為十六進製制新增前導 0x(%#x)或0x(%#x),為

%p(%#p)去掉前導 0x;對於 %q,若 strconv.canbackquote 返回 true,就會列印原始

(即反引號圍繞的)字串;如果是可列印字元,%u(%#u)會寫出該字元的unicode編碼形式

(如字元 x 會被列印成 u+

0078

'x')。

' ' (空格)為數值中省略的正負號留出空白(% d);以十六進製制(% x,

% x)列印字串或

切片時,在位元組之間用空格隔開

0 填充前導的0而非空格;對於數字,這會將填充移到正負號之後

print 函式不接受任何格式化,它等價於對每乙個運算元都應用 %v。

println 會在運算元之間插入空白,並在末尾追加乙個換行符

C語言 printf格式化輸出,引數詳解

int main int argc,char argv double inserttime1 12321 printf 15s n inserttime 左對齊,15位長度,不夠補空格 printf 15s n inserttime 右對齊,15位長度,不夠補空格 printf 015s n ins...

C語言 printf格式化輸出,引數詳解

int main int argc,char ar double inserttime1 12321 printf 15s n inserttime 左對齊,15位長度,不夠補空格 printf 15s n inserttime 右對齊,15位長度,不夠補空格 printf 015s n inser...

C語言 printf格式化輸出,引數詳解

int main int argc,char ar double inserttime1 12321 printf 15s n inserttime 左對齊,15位長度,不夠補空格 printf 15s n inserttime 右對齊,15位長度,不夠補空格 printf 015s n inser...