在上一個小demo《printf()函數(1)》中主要說了一下printf()函數的轉換說明符,這些轉移說明符是可以被修飾的。我們可以在%d和定義的轉義字元之間通過插入修飾符對基本的轉換說明加以修改。
printf()修飾符
結果:
不夠的前面補空格,超了的,不用補了。
結果:
小數點前面表示的是字元寬度,不夠的空格填充,小數點後面表示的是有多少個數字。
- h 和整數轉換說明符一起使用,表示一個short int 或者unsigned short int
結果:
1024 本身就占了4個字段,是以1hd、2hd、3hd、4hd效果是一樣的,5hd有一個空格填充在前面。
- hh 和整數轉換說明符一起使用,表示一個short char 或者unsigned char
- l 和整數轉換說明符一起使用,表示一個long int 或者unsigned long int
- ll 和整數轉換說明符一起使用,表示一個long long int 或者unsigned long long int
- L 和浮點轉換說明符一起使用 ,表示一個long deuble
- j 和整數轉換說明符一起使用,表示一個intmax_t或者uintmax_t
- z 和整數轉換說明符一起使用,表示一個size_t值(sizeof傳回的類型)(C99)
- t 和整數轉換說明符一起使用,表示一個ptrdiff_t值(兩個指針之間的差相對應的類型)(C99)
這幾個都是很基本的,就不過多的介紹了。
print()的标志
- - 項目是左對齊的:也就是說,會把項目列印在字段的左側開始處
結果:
全部左對齊了
- + 有符号的值若為正,則顯示帶加号的符号:若為負,則帶減号的符号
結果:
區分正負号,預設左對齊了。
- (空格) 有符号的值若為正,則顯示時帶前導空格(但是不顯示符号);若為負,則帶減号符号。+标志會覆寫空格标志
結果:
- #使用轉換說明的可選形式。若為%o格式,則以0開始;若為%x和%X格式,則以0x或0X開始。對于所有的浮點形式,#保證了及時不跟任何數字,也列印一個小數點字元。對于%g和%G格式,它防止尾随零被删除
結果:
- 0對于所有的數字格式,用前導零而不是用空格填充字段寬度。如果出現-标志或者指定了精度(對于整數)則忽略該标志
結果:
printf()的傳回值
printf()函數有一個傳回值,傳回的是所列印的字元的數目。
結果:
test code
#include
int main()
{
int a = 1;
printf("a is %d