C語言中多樣式的格式控制符的使用詳解
C語言中的格式控制符類型繁多,雖然格式字符可能就那么幾個,但組合起來使得格式控制符變得多樣化,這對于C語言初學者來說無疑是一種痛苦,為此我將常見的格式控制符類型及意義總結一下,這些格式符的用法不需要你立即全部掌握,應當在日后的編程實踐中逐步掌握。
先來看一個代碼示例:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int i; int temp=1234; int arr[5] = { 34,45,-67,89,-68 }; printf("%#o\n", temp); printf("%lo\n", temp); for (i = 0; i < 5; i++) printf("%d", arr[i]); printf("\n"); for (i = 0; i < 5; i++) printf("%-5d", arr[i]); printf("\n"); for (i = 0; i < 5; i++) printf("%+4d", arr[i]); printf("\n"); return 0; }
代碼運行結果如下:
從上面代碼示例中可以看到,printf函數中的格式字符串有多種不同的組合,不同的組合輸出內容也不盡相同,它一般是以%開頭的字符串,在%后面跟有各種樣式的格式字符,以說明輸出數據的類型、形式、長度、小數位數等,其 一般形式如下:
%[標志] [輸出最小寬度] [.精度] [長度]
其中[]中表示可選項。各項意義介紹如下:
1.標志:標志字符有-、+、#、空格等四種,其所代表的意義如下:
- -: 當實際位數小于指定位數時,數據在指定寬度內左對齊;多余位數以空格填充。
- +: 用于在正數之前添加"+",在負數之前添加"-"。
-和+的代碼示例如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int i; int temp = 1234; int arr[3] = { 23,45,68 }; printf("%d\n", temp); printf("%+d\n", temp); for (i = 0;i < 3; i++) printf("%3d", arr[i]); printf("\n"); for (i = 0;i < 3; i++) printf("%-3d", arr[i]); return 0; }
運行結果如下:
#: 對o類,輸出時添加前綴o;對x類,在輸出時添加前綴0x;對e,g,f類,當結果有小數時才給出小數點,對c、s、d、u類無影響。
#的代碼示例如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int temp1 = 1234; float temp2 = 3.5; printf("%#d\n", temp1); printf("%#o\n", temp1); printf("%#x\n", temp1); printf("%#f\n", temp2); return 0; }
運行結果如下:
2.輸出最小寬度:用十進制整數來表示輸出的最少位數。若實際位數多于定義的長度,則按實際位數輸出,若實際位數少于定義的寬度則補以空格或0。
3.精度:精度格式符以‘ . ’開頭,后跟十進制數。它的含義是:如果輸出實數,則表示小數的位數;如果輸出的是字符串,則表示輸出字符的個數;如果實際位數大于所定義的精度數,則截去超過的部分(四舍五入)。
4.長度:長度格式有h和l兩種,h表示按短整型輸出,l表示按長整型輸出。
敘述了這么多理論知識,相信大家已經對格式字符的多種組合已經有了一個了解,為了讓大家對其有一個更加深入的了解,特舉一些常用的格式符使用示例如下:
⑴%m.nd: m、n均為正整數,其中m指定輸出結果的總位數,n指定實際輸出的整數位數。
注意:若整數的實際位數小于n,則用字符0填充;若實際位數大于n,則n不起作用。
代碼示例如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int a = 123; int b = -1234; printf("%d\n", a); printf("%.4d\n", a); printf("%5.2d\n", a); printf("%.4d\n", b); printf("%8.6d\n", b); return 0; }
運行結果如下:
⑵%m.ns: m、n均為正整數。其中m指定輸出結果的總位數,n指定實際輸出結果的字符個數(從字符串左端截?。?/p>
代碼示例如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { printf("%.3s\n", "good"); printf("%.4s\n", "good"); printf("%10.4s\n", "good"); printf("%.8d\n", "good"); return 0; }
運行結果如下:
雖然格式控制符組合繁多,但并不需要死記硬背,只需在一定代碼訓練后掌握其含義即可。
到此這篇關于C語言中多樣式的格式控制符的使用詳解的文章就介紹到這了,更多相關C語言格式控制符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++實現(xiàn)單鏈表刪除倒數第k個節(jié)點的方法
這篇文章主要介紹了C++實現(xiàn)單鏈表刪除倒數第k個節(jié)點的方法,結合實例形式分析了C++單鏈表的定義、遍歷及刪除相關操作技巧,需要的朋友可以參考下2017-05-05Qt實現(xiàn)指針式時鐘 Qt實現(xiàn)動態(tài)時鐘
這篇文章主要為大家詳細介紹了Qt實現(xiàn)指針式時鐘,Qt實現(xiàn)動態(tài)時鐘,兩者相互切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07