printf多列對齊(格式化輸出的高階應用)

2021-10-11 03:58:57 字數 1717 閱讀 3698

2數字對齊

printf("%-*s", 20, string); 表示輸出字串左對齊輸出20,如果字串不夠20個,以空格補齊。 -表示左對齊。

例:

struct help_struct

;struct help_struct options=

,,,,

,,,}

;static

void

show_usage

(const

char

*execname)

}

show_usage輸出結果為:

usage: ./vicm_test [options] …

options:

–set_node_id node_id set the node id

–set_debug_level debug_level 4:debug 3:info 2:warning 1:err 0:ness

–flush_pool pool_name

–get_lu_count

–check_pools pool_name

–invalid_pool pool_name

–set_mirror mirror_state 0:disable 1:enable

printf("%*s", 20, string); 表示輸出字串右對齊輸出20,如果字串不夠20個,以空格補齊。 沒有-表示右對齊。

例:

static

void

show_usage

(const

char

*execname)

}

show_usage輸出結果為:

usage: ./vicm_test [options] …

options:

– set_node_id node_id set the node id

– set_debug_level debug_level 4:debug 3:info 2:warning 1:err 0:ness

– flush_pool pool_name

– get_lu_count

– check_pools pool_name

– invalid_pool pool_name

– set_mirror mirror_state 0:disable 1:enable

右對齊%numd(num是位數,比如按5位數的長度輸出,num為正數則右對齊)

左對齊%numd(num是位數,比如按5位數的長度輸出,num為負數則左對齊)

保留固定的小數字%m.nf(m是結果總位數,n是小數部分位數,按四捨五入保留)

printf格式化輸出

一 轉換說明符 a a 浮點數 十六進製制數字和p p 記數法 c99 c 字元 d 有符號十進位制整數 f 浮點數 包括float和doulbe e e 浮點數指數輸出 e e 記數法 g g 浮點數不顯無意義的零 0 i 有符號十進位制整數 與 d相同 u 無符號十進位制整數 o 八進位制整數 ...

printf 格式化輸出

格式 printf s b 輸出 b printf的轉義序列 序列 說明 a 警告字元,通常為ascii的bel字元 b 後退 c 抑制 不顯示 輸出結果中任何結尾的換行字元 只在 b格式指示符控制下的 引數字串中有效 而且,任何留在引數裡的字元 任何接下來的引數以及 任何留在格式字串中的字元,都被...

printf格式化輸出

a a 浮點數 十六進製制數字和p p 記數法 c99 c 字元 d 有符號十進位制整數 f 浮點數 包括float和double e e 浮點數指數輸出 e e 記數法 g g 浮點數不顯無意義的零 0 i 有符號十進位制整數 與 d相同 u 無符號十進位制整數 o 八進位制整數 e.g.0123...