国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C語(yǔ)言】printf你真的用明白了嗎?

這篇具有很好參考價(jià)值的文章主要介紹了【C語(yǔ)言】printf你真的用明白了嗎?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1.printf是什么?

2.格式控制字符串 與 輸出值參數(shù)表

2.1格式控制字符串

2.2輸出值參數(shù)表

2.3格式字符 和 格式修飾符 一覽圖?

2.3.1格式字符一覽圖

2.3.2格式修飾符

?3.常用格式字符詳解

?%d

%md?

?%f

%.nf

%m.f

?%c和%s

%c

%s

?6.printf的返回值

5.printf中的常見(jiàn)問(wèn)題

6.總結(jié)?

7.后言


1.printf是什么?

printf函數(shù)是格式輸出函數(shù),其關(guān)鍵字最末一個(gè)字母f即為“格式(format)”之意。其功能是按照用戶(hù)指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。

printf函數(shù)是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它是函數(shù)原型在頭文件“stdio.h”。但作為一個(gè)特例,不要求在使用printf函數(shù)之前必須包含stdio.h文件。printf函數(shù)調(diào)用的一般形式為:

printf(“格式控制字符串”,輸出表列)?

printf("f=%f,c=%f\n",f,c);

?其中,f=%f,c=%f\n?是格式控制字符串,f,c?是輸出值參數(shù)表


2.格式控制字符串 與 輸出值參數(shù)表

printf("f=%f,c=%f\n",f,c);

2.1格式控制字符串

格式控制字符串是用"雙引號(hào)"括起來(lái)的字符串,包括三類(lèi)信息:

  1. 格式字符。格式字符由“%”引導(dǎo),如%d、%f等。它的作用是控制輸出字符的格式。
  2. 轉(zhuǎn)義字符。格式控制字符串里的轉(zhuǎn)義字符按照轉(zhuǎn)義后的含義輸出,如上面printf函數(shù)雙引號(hào)內(nèi)的換行符“\n”,即輸出回車(chē)。
  3. 普通字符。普通字符即需要在輸出時(shí)原樣輸出的字符,如上面printf函數(shù)中雙引號(hào)內(nèi)的“f=”和“c= ”部分。

2.2輸出值參數(shù)表

(2)輸出值參數(shù)表是需要輸出的數(shù)據(jù)項(xiàng)的列表,輸出數(shù)據(jù)項(xiàng)可以是常量、變量或表達(dá)式,輸出值參數(shù)之間用逗號(hào)分隔,其類(lèi)型應(yīng)與格式字符相匹配。每個(gè)格式字符和輸出值參數(shù)表中的輸出值參數(shù)一一對(duì)應(yīng),如果沒(méi)有輸出參數(shù)時(shí),格式控制字符串中不再需要格式字符。??


2.3格式字符 和 格式修飾符 一覽圖?

2.3.1格式字符一覽圖

格式字符 說(shuō)明
d 輸出帶符號(hào)的十進(jìn)制整數(shù),正數(shù)的符號(hào)省略
u 以無(wú)符號(hào)的十進(jìn)制整數(shù)形式輸出
o 以無(wú)符號(hào)的八進(jìn)制整數(shù)形式輸出,不輸出前導(dǎo)符0
x 以無(wú)符號(hào)十六進(jìn)制整數(shù)形式(小寫(xiě))輸出,不輸出前導(dǎo)符0x
X 以無(wú)符號(hào)十六進(jìn)制整數(shù)形式(大寫(xiě))輸出,不輸出前導(dǎo)符0X
f 以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)
e 以指數(shù)形式(小寫(xiě)e表示指數(shù)部分)輸出實(shí)數(shù)
E 以指數(shù)形式(大寫(xiě)E表示指數(shù)部分)輸出實(shí)數(shù)
g 自動(dòng)選取f或e中輸出寬度較小的一種使用,且不輸出無(wú)意義的0
c 輸出一個(gè)字符
s 輸出字符串

注:%o %x %X如果向輸出前導(dǎo)符要在格式字符前加#, 如%#o %#x %#X 。

2.3.2格式修飾符

格式修飾符 說(shuō)明
英文字母l 修飾格式字符d、u、o、x時(shí),用于輸出long型數(shù)據(jù)
英文字母L 修飾格式字符f、e、g時(shí),用于輸出long double型數(shù)據(jù)
英文字母h 修飾格式字符d、o、x時(shí),用于輸出short型數(shù)據(jù)
輸出域?qū)抦(m為整數(shù)) 指定輸出項(xiàng)輸出時(shí)所占的列數(shù)
顯示精度.n (n為整數(shù))?? ?對(duì)于實(shí)數(shù),表示輸出n位小數(shù);對(duì)于字符串,表示截取的字符個(gè)數(shù)
-(減號(hào))

輸出數(shù)字或字符在域內(nèi)向左靠


?3.常用格式字符詳解

?%d

?輸出帶符號(hào)的十進(jìn)制整數(shù),正數(shù)的符號(hào)不輸出。

int a = 888,b = -666;
printf("%d\n%d",a,b);

?輸出結(jié)果:

【C語(yǔ)言】printf你真的用明白了嗎?

?還可以在%和格式字符中間插入格式修飾符,用于指定輸出數(shù)據(jù)的域?qū)挘ㄋ嫉牧袛?shù)),如用“%5d”,指定輸出數(shù)據(jù)占5列,輸出的數(shù)據(jù)在域內(nèi)向右靠齊。如:

%md?

int a = 888, b = -666;
printf("%5d\n%5d", a, b);

輸出結(jié)果:?

【C語(yǔ)言】printf你真的用明白了嗎?

從結(jié)果可以看出,在%和d中間加數(shù)字5,888占3個(gè)域?qū)挘?/strong>指定域?qū)?gt;輸出數(shù)據(jù)長(zhǎng)度。輸出數(shù)據(jù)靠右,前面補(bǔ)空格。

如果 指定域?qū)?lt;輸出數(shù)據(jù)長(zhǎng)度 呢?

?【C語(yǔ)言】printf你真的用明白了嗎?可見(jiàn)會(huì)按照原樣輸出。

若要輸出long(長(zhǎng)整型)數(shù)據(jù),則在格式字符d前面加字母l(代表long),即“%ld”。


?%f

?輸出一個(gè)實(shí)數(shù)(包括單精度、雙精度、長(zhǎng)雙精度),以小數(shù)形式輸出,有以下幾種用法:

不指定輸出數(shù)據(jù)的長(zhǎng)度,由系統(tǒng)根據(jù)數(shù)據(jù)的實(shí)際情況決定數(shù)據(jù)所占的列數(shù)。系統(tǒng)處理的方法一般是:實(shí)數(shù)中的整數(shù)部分全部輸出,小數(shù)部分輸出6位。

【C語(yǔ)言】printf你真的用明白了嗎?

雖然a是double類(lèi)型,所以 a/3也是double類(lèi)型。但%f格式字符只能輸出6位小數(shù)。


那怎么控制輸出小數(shù)點(diǎn)后面的位數(shù)呢??

%.nf

n表示小數(shù)點(diǎn)后保留n位小數(shù)。如下

【C語(yǔ)言】printf你真的用明白了嗎?

當(dāng)然浮點(diǎn)型也可以控制域?qū)?如下


%m.f

【C語(yǔ)言】printf你真的用明白了嗎?

可以看出 %3.f 實(shí)際是 %3.0f,小數(shù)點(diǎn)前面控制域?qū)?/span>,小數(shù)點(diǎn)后面控制小數(shù)點(diǎn)保留的個(gè)數(shù)。


?%c和%s

%c

【C語(yǔ)言】printf你真的用明白了嗎?

也可以加格式修飾符指定域?qū)挘纾?/p>

【C語(yǔ)言】printf你真的用明白了嗎?可見(jiàn)字符a前面補(bǔ)4個(gè)空格。因?yàn)樽址鸻占一個(gè)占位。

%s

?【C語(yǔ)言】printf你真的用明白了嗎?


?6.printf的返回值

初學(xué)C語(yǔ)言時(shí)用的最多的函數(shù)就是printf函數(shù),而printf函數(shù)的返回值是被大多數(shù)人忽略的,以至于很多應(yīng)聘者在碰到關(guān)于printf返回值的編程時(shí)一頭霧水,接下來(lái)就來(lái)談?wù)刾rintf的返回值。

int A=43;
printf("%d\n",printf("%d",printf("%d",A)));
【C語(yǔ)言】printf你真的用明白了嗎?看到運(yùn)行結(jié)果和代碼,可以想到是為什么嗎?沒(méi)看出也沒(méi)關(guān)系,我們分步驟看看。

?代碼邏輯:首先,從最內(nèi)層開(kāi)始A=43被直接輸出。然后,最內(nèi)層printf的返回值以%d的格式被中間層的printf輸出為2。最后,最外層的printf以%d的格式輸出中間層的返回值為1。

其實(shí)觀(guān)察第二個(gè)printf的輸出值和第三個(gè)printf的輸出值,第一個(gè)printf的輸出值和第二個(gè)printf的輸出值不難發(fā)現(xiàn):
printf的返回值就是輸出的字符數(shù)量

第三個(gè)printf輸出"43"字符數(shù)量為2,于是返回值為2,第二個(gè)printf就輸出"2”
第二個(gè)printf輸出"2"字符數(shù)量為1,于是返回值為1,第一個(gè)printf就輸出"1"

要注意一點(diǎn)是:返回值是是輸出的字符數(shù)量,包括數(shù)字,字母,標(biāo)點(diǎn)符號(hào),空格等。

printf("%d\n", printf("0,1,2,3\n"));

【C語(yǔ)言】printf你真的用明白了嗎?通過(guò)運(yùn)行結(jié)果不難看出,數(shù)字0123分別占一個(gè)字符,標(biāo)點(diǎn)符號(hào)" , "也是分別占一個(gè)字符位,換行符" \n "也是占一個(gè)。

如果代碼加一句,猜猜num的值是多少?

int num=printf("%d\n", printf("0,1,2,3\n"));
printf("%d", num);

【C語(yǔ)言】printf你真的用明白了嗎?答案是2,num值為2說(shuō)明num接受printf的返回值是2,也說(shuō)明了printf輸出字符數(shù)量是2,其中一個(gè)是數(shù)字8,另外一個(gè)就是printf格式控制中的 " \n "可見(jiàn),格式控制中的字符也算進(jìn)返回值哦!

那有人又問(wèn)了?為什么第一次結(jié)果不是9呢?

因?yàn)槭窍容敵隽?,再換行啊。要注意執(zhí)行先后順序!??!


5.printf中的常見(jiàn)問(wèn)題

  • 格式控制字符串中有%引導(dǎo)的格式字符時(shí),輸出值參數(shù)表中的數(shù)量以及類(lèi)型必須和格式字符一致

【C語(yǔ)言】printf你真的用明白了嗎?

分析:

  1. 第一個(gè)printf函數(shù)中的輸出參數(shù)b是double型值58.8,但對(duì)應(yīng)的格式控制符為%d,當(dāng)類(lèi)型不一致時(shí)并不會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換,而會(huì)將實(shí)際轉(zhuǎn)入的double型值當(dāng)作需要的整形類(lèi)型來(lái)理解,因此出現(xiàn)非預(yù)期結(jié)果;
  2. 第二個(gè)printf函數(shù)中,格式控制字符串給出了兩個(gè)%引導(dǎo)的格式字符,但是輸出參數(shù)表中只有一個(gè)參數(shù)a,參數(shù)缺少。因此輸出c的值默認(rèn)為內(nèi)存中a變量后面存儲(chǔ)單元的數(shù)據(jù)值,c的值無(wú)法確定
  • 格式控制字符串中沒(méi)有%引導(dǎo)的格式字符時(shí),也不需要輸出值參數(shù)表,直接輸出字符串內(nèi)容,轉(zhuǎn)義字符按照轉(zhuǎn)義后的實(shí)際意義輸出,如:

【C語(yǔ)言】printf你真的用明白了嗎?

  • 實(shí)現(xiàn)左對(duì)齊方法?
  • 通過(guò)“ - ”號(hào)來(lái)控制控制左對(duì)齊,可以無(wú)視域?qū)捒刂?/span>

【C語(yǔ)言】printf你真的用明白了嗎?


6.總結(jié)?

  1. 常用的格式控制,一般是%d,%f,%c,%s,及其他們獨(dú)特的輸出方式
  2. 每一個(gè)輸出都可以設(shè)置域?qū)?,默認(rèn)內(nèi)容右對(duì)齊
  3. 格式控制字符串中有%引導(dǎo)的格式字符時(shí),輸出值參數(shù)表中的數(shù)量以及類(lèi)型必須和格式字符一致
  4. 格式控制字符串中沒(méi)有%引導(dǎo)的格式字符時(shí),也不需要輸出值參數(shù)表,直接輸出字符串內(nèi)容,轉(zhuǎn)義字符按照轉(zhuǎn)義后的實(shí)際意義輸出
  5. 實(shí)現(xiàn)左對(duì)齊方法?:通過(guò)“ - ”號(hào)來(lái)控制控制左對(duì)齊

出生日期輸入輸出_??皖}霸_??途W(wǎng) (nowcoder.com)

小練習(xí)題,可以考核自己掌握了嗎?


7.后言

本篇比較詳細(xì)的介紹了C語(yǔ)言中,printf函數(shù)的概念,使用方法,注意事項(xiàng),和實(shí)踐操作。

因篇幅有限,和個(gè)人能力有限,可能存在內(nèi)容不完整和錯(cuò)誤,希望大家積極指正。我相信此文章可以給小白一定的幫助,大佬也可以當(dāng)復(fù)習(xí),感謝大家支持。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-513550.html

到了這里,關(guān)于【C語(yǔ)言】printf你真的用明白了嗎?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Fil真的要?dú)w零了嗎?

    Fil真的要?dú)w零了嗎?

    最近聽(tīng)見(jiàn)有人說(shuō)有fil的內(nèi)部消息,意思就是fil要清零了,關(guān)于這個(gè)消息今天就大家好好聊一聊fil到底會(huì)不會(huì)歸零。 首先市場(chǎng)上面沒(méi)有這種確定性的說(shuō)法,一定會(huì)到多少多少,我也不知道你們是從哪里聽(tīng)來(lái)的消息,如果這個(gè)市場(chǎng)有確定性,那你在得到這個(gè)內(nèi)部消息之后,完全可

    2024年02月13日
    瀏覽(27)
  • 互聯(lián)網(wǎng)行業(yè)真的不行了嗎?

    互聯(lián)網(wǎng)行業(yè)真的不行了嗎?

    英雄算法聯(lián)盟 - 七月集訓(xùn) 已經(jīng)開(kāi)始 16 天,八月算法集訓(xùn) 將于 08月01日 正式開(kāi)始,目前已經(jīng)提前開(kāi)始報(bào)名,報(bào)名方式參見(jiàn)(八月算法集訓(xùn)報(bào)名),想要參加的同學(xué),建議提早報(bào)名,因?yàn)閷?duì)于算法零基礎(chǔ)的同學(xué),會(huì)有一些提前的準(zhǔn)備工作,比如需要 1 - 5 天的時(shí)間完成預(yù)訓(xùn)練 和

    2024年02月16日
    瀏覽(32)
  • 【Spring】IOC,你真的懂了嗎?

    【Spring】IOC,你真的懂了嗎?

    作者:獅子也瘋狂 專(zhuān)欄:《spring開(kāi)發(fā)》 堅(jiān)持做好每一步,幸運(yùn)之神自然會(huì)駕凌在你的身上 Spring框架是獅子入坑Java的第一個(gè)開(kāi)源框架。當(dāng)我們接觸到它時(shí),總會(huì)發(fā)現(xiàn)老師或者書(shū)本介紹這兩個(gè)詞匯—— IOC和AOP ,它們分別是 控制反轉(zhuǎn)和面向切面 ,是Spring的思想內(nèi)核,提供了控制

    2024年02月20日
    瀏覽(30)
  • 最基礎(chǔ)的數(shù)組你真的掌握了嗎?

    最基礎(chǔ)的數(shù)組你真的掌握了嗎?

    ?????作者簡(jiǎn)介:大家好,我是黑洞曉威,一名大二學(xué)生,希望和大家一起進(jìn)步。 ??本文收錄于 算法 ,本專(zhuān)欄是針對(duì)大學(xué)生、初學(xué)算法的人準(zhǔn)備,解析常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)與算法,同時(shí)備戰(zhàn)藍(lán)橋杯。 首先要知道數(shù)組在內(nèi)存中的存儲(chǔ)方式,這樣才能真正理解數(shù)組相關(guān)的題 數(shù)組

    2023年04月12日
    瀏覽(24)
  • AI人工智能時(shí)代真的到來(lái)了嗎?

    近一個(gè)月來(lái),關(guān)于A(yíng)I人工智能的話(huà)題此起彼伏,先有OpenAI發(fā)布GPT-4,后有百度推出文心一言,再有微軟把GPT-4接入Office全家桶并命名為“Microsoft 365 Copilot”,除此之外,微軟Bing還上線(xiàn)了AI繪圖功能、谷歌開(kāi)放聊天機(jī)器人Bard等等,各大巨頭們這一波操作使得AI又一次火爆全網(wǎng),人

    2024年02月02日
    瀏覽(32)
  • 關(guān)于低代碼開(kāi)發(fā),你是真的了解了嗎?

    關(guān)于低代碼開(kāi)發(fā),你是真的了解了嗎?

    在低代碼開(kāi)發(fā)已是大勢(shì)所趨的今天,不少企業(yè)都切身感受到了低代碼開(kāi)發(fā)帶來(lái)的便利。低代碼開(kāi)發(fā)平臺(tái)的優(yōu)勢(shì)在當(dāng)下數(shù)字化浪潮中,為企業(yè)提供了定制專(zhuān)屬的數(shù)字化解決方案。 低代碼本身沒(méi)有太強(qiáng)的行業(yè)屬性,這也讓低代碼開(kāi)發(fā)平臺(tái)能夠更加靈活地適應(yīng)不同行業(yè)。目前低代碼

    2024年02月05日
    瀏覽(22)
  • 最長(zhǎng)遞增子序列問(wèn)題(你真的會(huì)了嗎)

    最長(zhǎng)遞增子序列問(wèn)題(你真的會(huì)了嗎)

    目錄 一.最長(zhǎng)遞增子序列問(wèn)題I 二.最長(zhǎng)遞增子序列問(wèn)題II 三. 最長(zhǎng)遞增子序列問(wèn)題III 1.對(duì)應(yīng)牛客網(wǎng)鏈接 最長(zhǎng)上升子序列(一)_??皖}霸_??途W(wǎng) (nowcoder.com) 2.題目描述: ?3.解題思路 1.首先我們分析題意:最長(zhǎng)遞增子序列拆:要遞增的,還是序列,不一定連續(xù) ,要長(zhǎng)度最長(zhǎng)的。

    2024年02月15日
    瀏覽(29)
  • 制造業(yè)的寒冬真的要來(lái)了嗎?

    制造業(yè)的寒冬真的要來(lái)了嗎?

    制造業(yè)的寒冬真的要來(lái)了嗎?其實(shí)當(dāng)前,我國(guó)制造業(yè)發(fā)展水平是處于全球第三陣列,排名第四的: 但能處第三序列靠前,還是因?yàn)椤耙?guī)模發(fā)展”起了重要支撐——依靠規(guī)模拉動(dòng)發(fā)展。所以如果從“質(zhì)量效益”、“結(jié)構(gòu)優(yōu)化”、“持續(xù)發(fā)展”三項(xiàng)來(lái)評(píng)估,我們僅排名第六,就與

    2023年04月08日
    瀏覽(24)
  • 二分查找算法 | 你真的搞懂二分了嗎?

    二分查找算法 | 你真的搞懂二分了嗎?

    我身邊的人都認(rèn)為二分查找很簡(jiǎn)單,但事實(shí)真是如此嗎?不,并不簡(jiǎn)單。二分算法有著許多的 邊界問(wèn)題 ,當(dāng)你寫(xiě)著代碼一不小心就會(huì)陷入死循環(huán)。本篇文章會(huì)深入細(xì)節(jié)詳細(xì)介紹 整數(shù)二分算法 以及使用 二分算法步驟 和 力扣題目練習(xí) ,并且還會(huì)給出 二分查找算法模板 ,下面

    2023年04月10日
    瀏覽(23)
  • Lodash 真的死了嗎?Lodash 5 在哪里?

    Lodash 真的死了嗎?Lodash 5 在哪里?

    與一些傳言相反,Lodash依然活躍,并正在邁向Lodash 5的發(fā)布! Lodash 是那些為 JavaScript 提供便利功能的實(shí)用程序庫(kù)之一,它使編程變得更加輕松。許多開(kāi)發(fā)者使用它來(lái)簡(jiǎn)化對(duì)象和數(shù)組的處理。 它也是一個(gè)像 Moment.js 那樣被捕獲得措手不及的庫(kù)。由于沒(méi)有模塊化,它從一些項(xiàng)目中

    2024年02月06日
    瀏覽(15)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包