程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> printf 輸出格式,printf

printf 輸出格式,printf

編輯:關於C語言

printf 輸出格式,printf


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 。


還有一種特殊的輸出格式 %n 可以將所輸出字符串的長度值賦绐一個變量, 見下例:
int slen;
printf("111%n", &slen);
執行後變量被賦值為3。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved