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