函數原型: printf(Control-String, item1, item2, ...); 表一 轉換說明符及作為結果的列印輸出 轉 換 說 明 輸 出 %a 浮點數、十六進位數字和p-記數法(C99) %A 浮點數、十六進位數字和P-記數法(C99) %c 一個字元 %d 有符號十進位整數 ... ...
函數原型:
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” |