關於 printf() 函數的三張表格,printf三張
函數原型:
printf(Control-String, item1, item2, ...);
表一 轉換說明符及作為結果的打印輸出
轉 換 說 明
輸 出
%a
浮點數、十六進制數字和p-記數法(C99)
%A
浮點數、十六進制數字和P-記數法(C99)
%c
一個字符
%d
有符號十進制整數
%e
浮點數、e-記數法
%E
浮點數、E-記數法
%f
浮點數,十進制記數法
%g
根據數值不同自動選擇%f或者%e。%e格式在指數小於-4或者大於等於精度時使用
%G
根據數值不同自動選擇%f或者%E。%E格式在指數小於-4或者大於等於精度時使用
%i
有符號十進制整數(與%d相同)
%o
無符號八進制整數
%p
指針
%s
字符串
%u
無符號十進制整數
%x
使用十六進制數字0f的無符號十六進制整數
%X
使用十六進制數字0F的無符號十六進制整數
%%
打印一個百分號
表二 printf() 修飾符
修 飾 符
意 義
標志
五種標志(-、+、空格、#和0)都將在表三中描述,可以使用零個或多個標志
digit(s)
字段寬度的最小值。如果該字段不能容納要打印的數或者字符串,系統會使用更寬的字段
示例:”%4d”
.digit(s)
精度。對於%e、%E和%f轉換,是將要在小數點的右邊打印的數字的位數。對於%g和%G轉換,是有效數字的最大位數。對於%s轉換,是將要打印的字符的最大數目。對於整數轉換,是將要打印的數字的最小位數;如果必要,要使用前導零來達到這個位數。只使用“.”表示其後跟隨一個零,所以%.f與%.0f相同。示例:“%5.2f”打印一個浮點數,他的字段寬度為5個字符,小數點後有兩個數字
h
和整數轉換說明符一起使用,表示一個short int或者unsigned short int類型數值
示例:“%hu”、“%hx”和“%6.4hd”
hh
和整數轉換說明符一起使用,表示一個signed char或者unsigned char類型數值
示例:“%hhu”、“%hhx”和“%6.4hhd”
j
和整數轉換說明符一起使用,表示一個intmax_t或uintmax_t值
示例:“%jd”和“%8jX”
l
和整數說明符一起使用,表示一個long int或者unsigned long int類型值
示例:“%ld”和“%8lu”
ll
和整數說明符一起使用,表示一個long long int或unsigned long long int類型值(C99)
示例:“%lld”和“%8llu”
L
和浮點轉換說明符一起使用,表示一個long double值
示例:“%Lf”和“.4Le”
t
和整數轉換說明符一起使用,表示一個ptrdiff_t值(與兩個指針之間的差相對應的類型) (C99)
示例:“%td”和“ti”
z
和整數轉換說明符一起使用,表示一個size_t值(sizeof返回的類型) (C99)
示例:“%zd”和“zx”
表三 printf() 的標志
標 志
意 義
-
項目是左對齊的,也就是說,會把項目打印在字段的左側開始處
示例:“%-20s”
+
有符號的值若為正,則顯示帶加號的符號;若為負,則帶減號的符號
示例:“%+6.2f”
(空格)
有符號的值若為正,則顯示時帶前導空格(但是不顯示符號);若為負,則帶減號符號。+標志會覆蓋空格標志
示例:“% 6.2f”
#
使用轉換說明的可選形式。若為%o格式,則以0開始;若為%x和%X格式,則以0x或0X開始,對於所有的浮點形式,#保證了即使不限任何數字,也打印一個小數點字符。對於%g和%G格式,它防止尾隨零被刪除
示例:“%#o”、“%#8.0f”和“%+#10.3E”
0
對於所有的數字格式,用前導零而不是用空格填充字段寬度。如果出現-標志或者指定了精度(對於整數)則忽略該標志
示例:“0d”和“.3f”