格式說明符是在格式化的輸入和輸出函數(shù)中使用的字符串。格式字符串確定輸入和輸出的格式。格式字符串始終以“%”字符開頭。
轉(zhuǎn)換說明 | 輸 出 |
%a | 浮點(diǎn)數(shù)、十六進(jìn)制數(shù)字和p-記數(shù)法 (C99) |
%A | 浮點(diǎn)數(shù)、十六進(jìn)制數(shù)字和P-記數(shù)法 (C99) |
%c | 一個(gè)字符 |
%d | 有符號(hào)十進(jìn)制整數(shù) |
%e | 浮點(diǎn)數(shù)、e-記數(shù)法 |
%E | 浮點(diǎn)數(shù)、E-記數(shù)法 |
%f | 浮點(diǎn)數(shù),十進(jìn)制記數(shù)法 |
%g | 根據(jù)數(shù)值不同自動(dòng)選擇%f或者%e。%e格式在指數(shù)小于-4或者大于等于精度時(shí)使用 |
%G | 根據(jù)數(shù)值不同自動(dòng)選擇%f或者%E。%E格式在指數(shù)小于-4或者大于等于精度時(shí)使用 |
%i | 有符號(hào)十進(jìn)制整數(shù) (與%d相同) |
%o | 無符號(hào)八進(jìn)制整數(shù) |
%p | 指針(就是指地址) |
%s | 字符串 |
%u | 無符號(hào)十進(jìn)制整數(shù) |
%x | 使用十六進(jìn)制數(shù)字0f 的無符號(hào)十六進(jìn)制整數(shù) |
%X | 使用十六進(jìn)制數(shù)字0F的無符號(hào)十六進(jìn)制整數(shù) |
%% | 打印一個(gè)百分號(hào) |
修飾符 | 意 義 |
標(biāo)志 | 五種標(biāo)志 (-、+、空格、# 和0) 都將在表三中描述,可以使用零個(gè)或多個(gè)標(biāo)志 |
digit(s) | 字段寬度的最小值。如果該字段不能容納要打印的數(shù)或者字符串,系統(tǒng)會(huì)使用更寬的字段。示例:“%4d” |
.digit(s) | 精度。對(duì)于%e、%E和%f轉(zhuǎn)換,是將要在小數(shù)點(diǎn)的右邊打印的數(shù)字的位數(shù)。對(duì)于%g和%G轉(zhuǎn)換,是有效數(shù)字的最大位數(shù)。對(duì)于%s轉(zhuǎn)換,是將要打印的字符的最大數(shù)目。對(duì)于整數(shù)轉(zhuǎn)換,是將要打印的數(shù)字的最小位數(shù);如果必要,要使用前導(dǎo)零來達(dá)到這個(gè)位數(shù)。只使用“.”表示其后跟隨一個(gè)零,所以%.f與%.0f相同。示例:“%5.2f”打印一個(gè)浮點(diǎn)數(shù),他的字段寬度為5個(gè)字符,小數(shù)點(diǎn)后有兩個(gè)數(shù)字。 |
h | 和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)short int 或者 unsigned short int 類型數(shù)值。 示例:“%hu”、“%hx”和“%6.4hd” |
hh | 和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)signed char 或者unsigned char類型數(shù)值。 示例:“%hhu”、“%hhx”和“%6.4hhd” |
j | 和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)intmax_t或uintmax_t值。 示例:“%jd”和“%8jX” |
l | 和整數(shù)說明符一起使用,表示一個(gè)long int 或者unsigned long int 類型值。 示例:“%ld”和“%8lu” |
ll | 和整數(shù)說明符一起使用,表示一個(gè)long long int或 unsigned long long int 類型值 (C99)。 示例:“%lld”和“%8llu” |
L | 和浮點(diǎn)轉(zhuǎn)換說明符一起使用,表示一個(gè)long double值。 示例:“%Lf”和“%10.4Le” |
t | 和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)ptrdiff_t值(與兩個(gè)指針之間的差相對(duì)應(yīng)的類型) (C99) 示例:“%td”和“%12ti” |
z | 和整數(shù)轉(zhuǎn)換說明符一起使用,表示一個(gè)size_t值(sizeof返回的類型) (C99)。 示例:“%zd”和“%12zx” |
修飾符 | 意 義 |
- | 項(xiàng)目是左對(duì)齊的,也就是說,會(huì)把項(xiàng)目打印在字段的左側(cè)開始處。示例:“%-20s” |
+ | 有符號(hào)的值若為正,則顯示帶加號(hào)的符號(hào);若為負(fù),則帶減號(hào)的符號(hào)。示例:“%+6.2f” |
(空格) | 有符號(hào)的值若為正,則顯示時(shí)帶前導(dǎo)空格(但是不顯示符號(hào));若為負(fù),則帶減號(hào)符號(hào)。+標(biāo)志會(huì)覆蓋空格標(biāo)志。示例:“% 6.2f” |
# | 使用轉(zhuǎn)換說明的可選形式。若為%o格式,則以0開始;若為%x和%X格式,則以0x或0X開始,對(duì)于所有的浮點(diǎn)形式,#保證了即使不限任何數(shù)字,也打印一個(gè)小數(shù)點(diǎn)字符。對(duì)于%g和%G格式,它防止尾隨零被刪除。示例:“%#o”、“%#8.0f”和“%+#10.3E” |
0 | 對(duì)于所有的數(shù)字格式,用前導(dǎo)零而不是用空格填充字段寬度。如果出現(xiàn)-標(biāo)志或者指定了精度(對(duì)于整數(shù))則忽略該標(biāo)志。示例:“%010d”和“%08.3f” |
轉(zhuǎn)換說明符 | 意 義 |
%c | 把輸入解釋成一個(gè)字符 |
%d | 把輸入解釋成一個(gè)有符號(hào)十進(jìn)制整數(shù) |
%e,%f,%g, %a | 把輸入解釋成一個(gè)浮點(diǎn)數(shù) (%a是C99標(biāo)準(zhǔn)) |
%E,%F,%G,%A | 把輸入解釋成一個(gè)浮點(diǎn)數(shù) (%A是C99標(biāo)準(zhǔn)) |
%i | 把輸入解釋成一個(gè)有符號(hào)十進(jìn)制整數(shù) |
%o | 把輸入解釋成一個(gè)有符號(hào)八進(jìn)制數(shù) |
%p | 把輸入解釋成一個(gè)指針(地址) |
%s | 把輸入解釋成一個(gè)字符串;輸入的內(nèi)容以一個(gè)非空白字符作為開始,并且包含知道下一個(gè)空白字符的全部字符 |
%u | 把輸入解釋成一個(gè)無符號(hào)十進(jìn)制整數(shù) |
%x,%X | 把輸入解釋成一個(gè)有符號(hào)十六進(jìn)制整數(shù) |
修飾符 | 意 義 |
* | 滯后賦值。示例:“%*d” |
digit(s) | 最大字段寬度;在達(dá)到最大字段寬度或者遇到第一個(gè)空白字符時(shí)(不管哪一個(gè)先發(fā)生都一樣)停止對(duì)輸入項(xiàng)的讀取。示例:“%10s” |
hh | 把整數(shù)讀作signed char 或 unsigned char 。示例:“%hhd”“%hhu” |
ll | 把整數(shù)讀作long long或者 unsigned long long (C99)。示例:“%lld”“%llu” |
h,l或L | “%hd”和“hi”指示該值將會(huì)存儲(chǔ)在一個(gè)short int中。 “%ho”“%hx”和“%hu”指示該值將會(huì)存儲(chǔ)在一個(gè)unsigned short int中。 “%ld”和“%li”指示該值將會(huì)存儲(chǔ)在一個(gè)long中。 “%lo”“%lx”和“%lu”指示該值將會(huì)存儲(chǔ)在一個(gè)unsigned long中。 “%le”“%lf”和“%lg”指示該值以double類型存儲(chǔ)。將L(而非l)與e、f和g一起使用指示該值以long double類型存儲(chǔ)。 如果沒有這些修飾符,d、i、o和x指示int類型,而e、f和g指示float類型。 |