一、 Printf 輸出格式
C中格式字串的一般形式為: %[標誌][輸出最小寬度][.精度][長度]型別,其中方括號[]中的項為可選項。各項的意義介紹如下:
1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示:
表示輸出型別的格式字元 格式字元意義
a 浮點數、十六進位制數字和p-計數法(C99)
A 浮點數、十六進位制數字和p-計數法(C99)
c 輸出單個字元
d 以十進位制形式輸出帶符號整數(正數不輸出符號)
e 以指數形式輸出單、雙精度實數
E 以指數形式輸出單、雙精度實數
f 以小數形式輸出單、雙精度實數
g 以%f%e中較短的輸出寬度輸出單、雙精度實數,%e格式在指數小於-4或者大 於等於精度時使用
G 以%f%e中較短的輸出寬度輸出單、雙精度實數,%e格式在指數小於-4或者大於等於精度時使用
i 有符號十進位制整數(與%d相同)
o 以八進位制形式輸出無符號整數(不輸出字首O)
p 指標
s 輸出字串
x 以十六進位制形式輸出無符號整數(不輸出字首OX)
X 以十六進位制形式輸出無符號整數(不輸出字首OX)
u 以十進位制形式輸出無符號整數
2.標誌
標誌字元為-、+、#、空格和0五種,其意義下表所示:
標誌格式字元 標 志 意 義
a 浮點數、十六進位制
一、 Printf 輸出格式
C中格式字串的一般形式為: %[標誌][輸出最小寬度][.精度][長度]型別,其中方括號[]中的項為可選項。各項的意義介紹如下:
1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示:
表示輸出型別的格式字元 格式字元意義
a 浮點數、十六進位制數字和p-計數法(C99)
A 浮點數、十六進位制數字和p-計數法(C99)
c 輸出單個字元
d 以十進位制形式輸出帶符號整數(正數不輸出符號)
e 以指數形式輸出單、雙精度實數
E 以指數形式輸出單、雙精度實數
f 以小數形式輸出單、雙精度實數
g 以%f%e中較短的輸出寬度輸出單、雙精度實數,%e格式在指數小於-4或者大 於等於精度時使用
G 以%f%e中較短的輸出寬度輸出單、雙精度實數,%e格式在指數小於-4或者大於等於精度時使用
i 有符號十進位制整數(與%d相同)
o 以八進位制形式輸出無符號整數(不輸出字首O)
p 指標
s 輸出字串
x 以十六進位制形式輸出無符號整數(不輸出字首OX)
X 以十六進位制形式輸出無符號整數(不輸出字首OX)
u 以十進位制形式輸出無符號整數
2.標誌
標誌字元為-、+、#、空格和0五種,其意義下表所示:
標誌格式字元 標 志 意 義
結果左對齊,右邊填空格+ 輸出符號(正號或負號)空格 輸出值為正時冠以空格,為負時冠以負號# 對c,s,d,u類無影響;對o類,在輸出時加字首0;對x類,在輸出時加字首0x或者0X;對g,G 類防止尾隨0被刪除;對於所有的浮點形式,#保證了即使不跟任何數字,也列印一個小數點字元0 對於所有的數字格式,用前導0填充欄位寬度,若出現-標誌或者指定了精度(對於整數),忽略3.輸出最小寬度用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0。如:printf("%-10e\n" , 223.11);printf("%+10e\n" , 232.11111111);4.精度精度格式符以“.”開頭,後跟十進位制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。5.長度長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。6.特殊用法對於m.n的格式還可以用如下方法表示(例)char ch[20];printf("%*.*s\n",m,n,ch);前邊的*定義的是總的寬度,後邊的定義的是輸出的個數。分別對應外面的引數m和n 。我想這種方法的好處是可以在語句之外對引數m和n賦值,從而控制輸出格式。今天(06.6.9)又看到一種輸出格式 %n 可以將所輸出字串的長度值賦紿一個變數, 見下例:int slen;printf("hello world%n", &slen);執行後變數被賦值為11。一、 Printf 輸出格式C中格式字串的一般形式為: %[標誌][輸出最小寬度][.精度][長度]型別,其中方括號[]中的項為可選項。各項的意義介紹如下:
1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示:
表示輸出型別的格式字元 格式字元意義
a 浮點數、十六進位制