當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 電子技術(shù)資源
[導(dǎo)讀]首先說明,Windows系統(tǒng)對'\n'的處理結(jié)果為”回車換行”,相當(dāng)于Linux中的'\r', '\n'兩個字符

首先說明,Windows系統(tǒng)對'\n'的處理結(jié)果為”回車換行”,相當(dāng)于Linux中的'\r', '\n'兩個字符

一、標(biāo)準(zhǔn)輸出函數(shù)

1. printf()

printf()的常用格式化有:%d, %f, %c, %s, %p, %x, %X, %%

%p與%x / %X的區(qū)別:%p格式化需要void*類型的參數(shù),而%x / %X需要unsigned int類型的參數(shù),也就是說%p用于以16進(jìn)制打印地址(指針),%x / %X用于以16進(jìn)制打印數(shù)值(非指針),%p, %x / %X打印結(jié)果均無前導(dǎo)0x / 0X,%p打印結(jié)果有前導(dǎo)0而%x / %X沒有前導(dǎo)0

%s:對應(yīng)參數(shù)為字符指針,可以輸出對應(yīng)的字符串,識別到'\0'時(shí)結(jié)束,不會添加‘\n'

傳入printf()中的某格式控制符與參數(shù)列表中的對應(yīng)參數(shù)類型不匹配時(shí),將以該格式輸出0

2.putchar()

使用putchar()輸出變量時(shí),傳入變量名即可

使用putchar()輸出常量時(shí),傳入該字符的ASCII碼或以格式‘/*單個字符常量*/’傳入?yún)?shù)均可

以下使用方式是錯誤的:

以“/*字符串*/”格式傳入字符串將打印一個?

以‘/*多個字符常量*/'格式傳入多個字符串將打印最后一個字符

#include

int main(void)

{

char a = 35;

//輸出#

putchar(a);

//輸出a

putchar('a');

//輸出?

putchar("a");

//輸出#

putchar(35);

//輸出5

putchar('35');

//輸出?

putchar("35");

return 0;

}

3.puts()

首先說明:C編譯器為字符串分配內(nèi)存時(shí),會在若干字符末尾后綴一個’\0'結(jié)束符,所以在未知字符串長度時(shí),所有字符串處理函數(shù)都以識別到'\0'作為字符串結(jié)束標(biāo)志,在未知字符串長度的情況下使用字符串處理函數(shù)處理任何沒有'\0'的字符串將導(dǎo)致非法內(nèi)存訪問(數(shù)組越界),輕則輸出亂碼,重則程序異常終止

//逐個字符為字符數(shù)組賦值時(shí)必須手動加'\0'

char string[6] = { 'h', 'e', 'l', 'l', 'o', '\0' };//合法

char string[ ] = { 'h', 'e', 'l', 'l', 'o', '\0' };//合法

char string[5] = { 'h', 'e', 'l', 'l', 'o' };//非法

char string[ ] = { 'h', 'e', 'l', 'l', 'o' };//非法

//以字符串為字符數(shù)組賦值時(shí)編譯器將自動加'\0'

char string[ ] = { "hello" };//合法

char string[ ] = "hello";//合法

//字符數(shù)組實(shí)際長度為 字符總數(shù) + 1

char string[6] = "hello"http://合法

char string[5] = "hello"http://編譯器將報(bào)錯

使用puts()時(shí),傳入字符指針可以輸出對應(yīng)的字符串,識別到'\0'時(shí)結(jié)束,并輸出一個'\n'

二、標(biāo)準(zhǔn)輸入函數(shù)

1.scanf()

首先說明:輸入緩沖區(qū)(stdin)是內(nèi)存中的一個隊(duì)列(FIFO),有先入先出的性質(zhì),可以使用多種方法清空輸入緩沖區(qū)

//定義在stdio.h中,用于清空輸入緩沖

fflush(stdin);

//定義在stdio.h中,用于清空輸入緩沖

rewind(stdin);

//該方法在以敲回車作為輸入結(jié)束標(biāo)志時(shí)可以使用

while (getchar() != '\n');

scanf()從內(nèi)存中的輸入緩沖區(qū)中讀取數(shù)據(jù),若讀取正常,未被讀取完的數(shù)據(jù)將繼續(xù)留在輸入緩沖區(qū),若讀取異常,輸入緩沖區(qū)將被清空

函數(shù)返回值為實(shí)際讀取成功的變量個數(shù),一個都沒成功會返回EOF值(在stdio.h中define為-1)

%c:會把包括空白符,控制符在內(nèi)的所有內(nèi)容都讀走

%s:使用%s輸入字符串時(shí)遇到空白符即停止,空白符會留在輸入緩沖區(qū)

PS:scanf()格式化中的若干細(xì)節(jié)

1)當(dāng)格式控制符之間緊鄰時(shí),以空格或tab鍵作為輸入變量時(shí)的分隔

2)當(dāng)scanf()引號內(nèi)開頭有空白字符時(shí),將跳過輸入緩沖區(qū)開頭的若干空白符

3)當(dāng)scanf()引號中任意位置有非空白字符時(shí),緩沖區(qū)中數(shù)據(jù)必須與之匹配

4)當(dāng)scanf()引號內(nèi)非開頭位置有空白符時(shí),緩沖區(qū)中數(shù)據(jù)必須與之匹配

5)不要在scanf()引號內(nèi)末尾添加字符,否則讀取完成還會繼續(xù)向后匹配,不但沒什么作用(格式控制字符串中內(nèi)容比stdin中多或匹配失敗均會結(jié)束調(diào)用并清空stdin,stdin中內(nèi)容比格式控制字符串中多會結(jié)束調(diào)用但保留stdin中多余內(nèi)容),萬一字符串被掃描到末尾的同時(shí)stdin剛好為空還會導(dǎo)致死循環(huán)

2.getchar()

getchar()不需要參數(shù),返回值即為輸入的字符

3.gets()

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉