printf()函式中的格式串格式為:
[標誌][輸出最小寬度][.精度]型別。 其中:方括號[]中的項為可選項。
1) 型別
型別字元用以表示輸出資料的型別
d 以十進位制形式輸出帶符號整數(正數不輸出符號)
o 以八進位制形式輸出無符號整數(不輸出字首0)
x,X 以十六進位制形式輸出無符號整數(不輸出字首Ox)
u 以十進位制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e,E 以指數形式輸出單、雙精度實數
g,G 以%f或%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字元
s 輸出字串
2)標誌
標誌字元為 -、+、#
- 結果左對齊,右邊填空格
+ 輸出符號(正號或負號)
#對o類,在輸出時加字首0; 對x類,在輸出時加字首0x;
3) 輸出最小寬度
用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0(當最小寬度數值以0開頭時)。
4) 精度
精度格式符以“.”開頭,後跟十進位制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。
綜合以上,可以看出,%2x 表示按16進位制輸出資料,最小輸出寬度為2個字元,右對齊,如果輸出的資料小於2個字元,前補空格,如:
printf("%2x", 12 ); //輸出 c 12的16進位制數是c
printf()函式中的格式串格式為:
[標誌][輸出最小寬度][.精度]型別。 其中:方括號[]中的項為可選項。
1) 型別
型別字元用以表示輸出資料的型別
d 以十進位制形式輸出帶符號整數(正數不輸出符號)
o 以八進位制形式輸出無符號整數(不輸出字首0)
x,X 以十六進位制形式輸出無符號整數(不輸出字首Ox)
u 以十進位制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e,E 以指數形式輸出單、雙精度實數
g,G 以%f或%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字元
s 輸出字串
2)標誌
標誌字元為 -、+、#
- 結果左對齊,右邊填空格
+ 輸出符號(正號或負號)
#對o類,在輸出時加字首0; 對x類,在輸出時加字首0x;
3) 輸出最小寬度
用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0(當最小寬度數值以0開頭時)。
4) 精度
精度格式符以“.”開頭,後跟十進位制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。
綜合以上,可以看出,%2x 表示按16進位制輸出資料,最小輸出寬度為2個字元,右對齊,如果輸出的資料小於2個字元,前補空格,如:
printf("%2x", 12 ); //輸出 c 12的16進位制數是c