printf專題:你可能不知道的printf用法

今天這篇,想給大家把printf拿出來再詳細講一講,因為不少同學反映只會用,但一些參數、返回值什麼的還不瞭解,所以今天總結一二,給大家總結和梳理一下,算是拋磚引玉,能給大家打開大門,下面開始。

首先,以下四種printf的用法想必大家都應該很熟悉。

printf專題:你可能不知道的printf用法

除此以外,各種\\n、\\t 、\\r、\\b等轉義字符不再講解,大家可自行查表。

我們著重講解以下幾種功能:

1.多進制轉換功能

除了上圖截圖所示,我們可以輸出常規字符、數字、字符串、小數以外,我們還可以輸出我們想要的十進制對應的八進制、十六進制數。如下圖,輸出99和它對應的八進制和十六進制數,方便快速轉換輸出:

printf專題:你可能不知道的printf用法

但注意,程序裡體現不出二進制哦!

2.控制輸出佔位寬、左右對齊。

以%d為例,我們輸出的數字默認都是以實際佔位輸出,如下圖:

printf專題:你可能不知道的printf用法

當我們想以每個數字都用固定的寬度輸出時,可以在%和d之間加一個數來表示位寬,比如佔10位,則寫成%10d,效果如下:

printf專題:你可能不知道的printf用法

看到了嗎?如果想讓它們還像原來左打頭呢,就把10換成-10即可,試試看:

printf專題:你可能不知道的printf用法

此時依舊佔位10個字節,雖然肉眼看不出來!

3.小數位數控制

大家在定義float和double類型時,有沒有遇到過這樣的情形呢?

printf專題:你可能不知道的printf用法

浮點數a只有兩位有效小數,而%f默認輸出6位,就會有多餘的4個0,我不想要怎麼辦?答:控制小數位數。

怎麼控制?%和f之間加.2即可,變成%.2f,效果如下:

printf專題:你可能不知道的printf用法

如果保留5位就%.5f以此類推,並且可以和上面講的控制位寬和對齊方向同時使用哈。給大家看看:

printf專題:你可能不知道的printf用法

一共佔5位,靠右對齊(這裡拋一個問題,如果這裡位寬為3小於實際4位怎麼辦?請自行思考上機測試)

怎麼樣,大家學會了嗎?

4. *號的用法

*在printf裡可以代表一個泛整數,可以代表任何整數。它可以出現在位寬的位置,也可以出現在小數位數的位置。

但在printf的雙引號外面,必須要有*對應的數值。

比如我的位寬不確定,想用整數a表示,則可以寫成:

printf專題:你可能不知道的printf用法

表示輸出浮點數a,佔b個寬度,能看明白嗎?

同理,也可以左對齊,也可以再用一個*數字表示小數。注意*和數字的對應關係即可。如下:

printf專題:你可能不知道的printf用法

5.返回值的作用及用法

不少同學問過我說printf的返回值是什麼意思,此前可以參考文章《幾個C語言筆試題》中第一個題的講解學習。

printf的返回值為一個整數類型,是打印的字符個數,而並非幾個數字、幾個字符。和位寬的概念一致,比如

printf專題:你可能不知道的printf用法

注意這裡\\n轉義字符也算一個。

以上,大家親自上機測試,很容易明白。

有問題請大家隨時留言聯繫我們!


以上幾種功能,大家看明白了嗎?看明白趕緊上機測試吧!

還有什麼功能、不明白的問題歡迎留言告知我們!


分享到:


相關文章: