两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

  • 歡迎訪問C語言網(wǎng)www.sztianhecheng.cn 比賽欄每月有獎月賽!舉辦比賽聯(lián)系QQ:2045302297
  • 問題反饋、粉絲交流 QQ群327452739 藍橋杯訓(xùn)練群:113766799 申請群時請備注排名里的昵稱
  • C語言研究中心 為您提供有圖、有料、解渴的C語言專題! 歡迎討論!

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

C語言研究中心 CTO 55644次瀏覽 18個評論

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

 

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

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

 

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

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

1.多進制轉(zhuǎn)換功能

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

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

 

 

 

但注意,程序里體現(xiàn)不出二進制哦!

 

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

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

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

 

 

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

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

 

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

 

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

 

 

此時依舊占位10個字節(jié),雖然肉眼看不出來!

 

 

3.小數(shù)位數(shù)控制

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

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

 

 

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

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

 

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

 

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

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

 

 

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

怎么樣,大家學(xué)會了嗎?

 

4. ?*號的用法

*在printf里可以代表一個泛整數(shù),可以代表任何整數(shù)。它可以出現(xiàn)在位寬的位置,也可以出現(xiàn)在小數(shù)位數(shù)的位置。

但在printf的雙引號外面,必須要有*對應(yīng)的數(shù)值。

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

 

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

 

表示輸出浮點數(shù)a,占b個寬度,能看明白嗎?

同理,也可以左對齊,也可以再用一個*數(shù)字表示小數(shù)。注意*和數(shù)字的對應(yīng)關(guān)系即可。如下:

 

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

 

 

5.返回值的作用及用法

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

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

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

 

注意這里\n轉(zhuǎn)義字符也算一個。

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

有問題請大家隨時留言聯(lián)系我們!

 

 

 

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

 

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

 

C語言研究中心(www.sztianhecheng.cn)

 

C語言網(wǎng)提供「C語言、C++、算法競賽」在線課程,全部由資深研發(fā)工程師或ACM金牌大佬親授課,更科學(xué)、全面的課程體系,以在線視頻+在線評測的學(xué)習(xí)模式學(xué)習(xí),學(xué)練同步,拒絕理論派,真正學(xué)會編程!還有獎學(xué)金等增值福利等你!

C語言網(wǎng), 版權(quán)所有丨如未注明 , 均為原創(chuàng)丨本網(wǎng)站采用BY-NC-SA協(xié)議進行授權(quán) , 轉(zhuǎn)載請注明printf專題:你可能不知道的printf用法
喜歡 (471)
[jinyangH@aliyun.com]
分享 (0)
發(fā)表我的評論
取消評論
表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
(18)個小伙伴在吐槽
  1. #include #include int main(void) { int a,b; printf("輸入一個整數(shù)\n"); b=scanf("%d",&a); printf("轉(zhuǎn)換后的數(shù):\n"); printf("%o \n",b); printf("%d \n",b); printf("%x \n",b); return 0; } 能幫忙看看我錯哪里了嗎,我win8 不能用vc 要求是輸入一個數(shù),輸出8進制10進制和16進制 是不是,要求的輸入任何一個數(shù),我用int,不能達到這要求
    545212017-06-30 17:20 回復(fù)
    • 應(yīng)該是scanf("%d",&b)因為b=scanf("%d",&a)返回的是讀取變量的個數(shù)
      sea-horizon2020-08-03 22:11 回復(fù)
  2. #include #include 這沒問題,粘貼問題
    545212017-06-30 17:21 回復(fù)
  3. 那種括號不顯示
    545212017-06-30 17:21 回復(fù)
  4. b為啥是5,輸出整形,為什么不是3呢
    努力2018-02-07 16:48 回復(fù)
    • b = printf("%.2f\n",a); 我的理解是輸出浮點數(shù)小數(shù)點第二位,所以是最后一個5的值
      回憶殺2018-05-11 10:01 回復(fù)
      • 5是字符個數(shù),a是4個,加上\n一個
        wus2018-10-30 16:51 回復(fù)
    • 不對啊,我覺得是 3.14占5個位啊??崭褚晃?,3 1 4三位,小數(shù)點一位,一共五位,%和d之間的代表位寬,位寬是5啊,感覺樓上兩個說的都不對啊 :evil:
      oh12019-01-26 19:29 回復(fù)
      • (3)(.)(1)(4)(\n)一共五個
        海星2019-02-02 10:48 回復(fù)
      • 沒看到空格
        奇異2020-03-11 14:39 回復(fù)
  5. 投入如圖一圖
    見到你發(fā)2019-03-29 15:24 回復(fù)
    • 驗題君
      見到你發(fā)2019-03-29 15:26 回復(fù)
  6. 驗題君
    見到你發(fā)2019-03-29 15:26 回復(fù)
  7. int a; printf("%d",&a);輸出a在內(nèi)存中的地址
    freshman52019-11-12 10:57 回復(fù)
  8. %5.21f是啥意思呀
    肖戰(zhàn)的小飛俠2020-02-15 22:28 回復(fù)
    • 位寬5位,保留兩位小數(shù)
      sea-horizon2020-08-03 22:16 回復(fù)
  9. #include int main(void) { float a = 3.1415; int b; b = printf("%.2f\n",a); printf("%d\n",b); return 0; } 3.14 5 請問老師:“printf("%d\n",b);”為什么輸出的是“5”? 先行謝謝了。
    waiksm37372022-09-08 11:36 回復(fù)
    • 因為printf("%d\n",b);這里\n轉(zhuǎn)義字符也算一個
      卷芯菜2023-02-08 22:53 回復(fù)