C語言輸出格式控制符彙總
寫在前面:這裏是小王成長日誌,一名在校大學生,想在學習之餘將自己的學習筆記分享出來,記錄自己的成長軌跡,幫助可能需要的人。歡迎關注與留言。
原文鏈接 ! ! ! : http://c.biancheng.net/cpp/html/33.html
栗子是我自己舉的。
0.格式字符串通用格式
在Turbo C中格式字符串的一般形式爲:
- [標誌] [輸出最小寬度] [.精度] [長度] 類型
- 其中方括號[]中的項爲可選項。
1. 標誌位
標 志 | 意義 |
---|---|
- | 結果左對齊,右邊填空格 |
+ | 輸出符號(正號或負號) |
空格 | 輸出值爲正時冠以空格,爲負時冠以負號 |
# | 對c、s、d、u類無影響; 對o類,在輸出時加前綴o; 對x類,在輸出時加前綴0x; 對e、g、f 類當結果有小數時纔給出小數點。 |
演示:
-
在這裏的左對齊的演示和第二部分最小寬度放在一起.
-
int a = -100, b = 101; printf("%+d|%+d|\n", a, b); /*******輸出結果******* -100|+101| //將符號也輸出出來了 *********************/
-
int a = 100, b = -101; printf("|% d|% d|\n", a, b); /*******輸出結果******* | 100|-101|//注意到100前面有個空格 正數符號用空格表示 負數直接輸出符號 *********************/
-
int a = 100; float b = 99.99, c = 99; printf("%x|%f|\n", a, b);//%x 表示以十六進制輸出這個數 printf("%#x|%#f|\n", a, b); /*******輸出結果******* 64|99.989998| 0x64|99.989998|//注意前綴 *********************/
2.輸出最小寬度
用十進制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0。
int a=100,b=101,c=102;
printf("%6d|%6d|%6d|\n",a,b,c);//每一個數字佔6位 不足處補空格 注意printf是默認右對齊
printf("%-6d|%-6d|%-6d|",a,b,c);//- 標誌位表示左對齊,右邊不足的地方補空格
/*******輸出結果*******
100| 101| 102|//第一行默認右對齊 左邊補空格
100 |101 |102 |//第二行-表示 左對齊 右邊補空格
*********************/
3.精度
精度格式符以“.”開頭,後跟十進制整數。
本項的意義是:
- 如果輸出數字,則表示小數的位數;
- 如果輸出的是字符,則表示輸出字符的個數;
- 若實際位數大於所定義的精度數,則截去超過的部分。
演示:
char a[]="abcdef";
float b = 99.12345, c = 99;
printf("%s|%f|%f\n", a, b, c);//正常輸出
printf("%.5s|%.3f|%.2f\n", a, b, c);//控制字符長度 以及小數位數
/*******輸出結果*******
abcdef|99.123451|99.000000
abcde|99.123|99.00 //字符串a只輸出了前5位 後面兩個小數都被控制了小數位數
*********************/
4.長度
長度格式符爲h、l兩種,h表示按短整型量輸出,l表示按長整型量輸出。
long int a = 270000000;
printf("long int = %d;int = %d.\n",sizeof(long int),sizeof(int));
printf("|%d|%d|%d|\n",a,a,a);
printf("|%hd|%ld|%d|",a,a,a);
/*******輸出結果*******
long int = 4;int = 4.//在筆者電腦上兩個編譯器long int的實現的長度都和int 一致 所以這裏%d 和%ld 都還可以的 但是在其他電腦上就不一定了
|270000000|270000000|270000000|
|-8320|270000000|270000000| //短整型時出錯了
*********************/
5.類型
類型字符用以表示輸出數據的類型,其格式符和意義如下表所示:
格式字符 | 意義 |
---|---|
d | 以十進制形式輸出帶符號整數(正數不輸出符號) |
o | 以八進制形式輸出無符號整數(不輸出前綴0) |
x,X | 以十六進制形式輸出無符號整數(不輸出前綴Ox) |
u | 以十進制形式輸出無符號整數 |
f | 以小數形式輸出單、雙精度實數 |
e,E | 以指數形式輸出單、雙精度實數 |
g,G | 以%f或%e中較短的輸出寬度輸出單、雙精度實數 |
c | 輸出單個字符 |
s | 輸出字符串 |
這個不予演示。
都看到這裏了,各位哥哥姐姐叔叔阿姨給小王點個贊 關個注 留個言吧,和小王一起成長吧,你們的關注是對我最大的支持。
有事沒事進來看看吧 : 小王的博客目錄索引
C語言專欄看這 : C語言學習專欄
如果以上內容有任何不準確或遺漏之處,或者你有更好的意見,就在下面留個言讓我知道吧-我會盡我所能來回答。