日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(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'時結(jié)束,不會添加‘\n'

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

2.putchar()

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

使用putchar()輸出常量時,傳入該字符的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)存時,會在若干字符末尾后綴一個’\0'結(jié)束符,所以在未知字符串長度時,所有字符串處理函數(shù)都以識別到'\0'作為字符串結(jié)束標(biāo)志,在未知字符串長度的情況下使用字符串處理函數(shù)處理任何沒有'\0'的字符串將導(dǎo)致非法內(nèi)存訪問(數(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ù)組賦值時編譯器將自動加'\0'

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

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

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

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

char string[5] = "hello"http://編譯器將報錯

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

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

1.scanf()

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

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

fflush(stdin);

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

rewind(stdin);

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

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

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

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

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

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

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

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

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

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

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

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

2.getchar()

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

3.gets()

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

最近看到APP上,給我推送了很多類似的回答,借此機會,也想著重新審視一下自己的學(xué)習(xí)歷程,以及結(jié)合自身和大牛,分享一些學(xué)習(xí)經(jīng)驗,希望對大家有所啟發(fā)和幫助。

關(guān)鍵字: APP 嵌入式 C語言

SQLite是一個跨平臺的輕量級數(shù)據(jù)庫,支持C/C++開發(fā),可用于嵌入式中,關(guān)于C/C++使用SQLite的簡單實例,可參考這篇:“玩轉(zhuǎn)SQLite6:使用C語言來讀寫數(shù)據(jù)庫”,本篇來繼續(xù)介紹SQLite的基礎(chǔ)運算符與表...

關(guān)鍵字: SQLite C語言 數(shù)據(jù)庫

在計算機科學(xué)中,內(nèi)存泄漏指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。

關(guān)鍵字: C語言 內(nèi)存泄漏

C語言使用函數(shù)調(diào)用,我們再熟悉不過了,但是函數(shù)調(diào)用在內(nèi)存中究竟發(fā)生了什么真的清楚嗎?只有搞清楚內(nèi)存里的內(nèi)幕,才算完全搞懂函數(shù)的調(diào)用。

關(guān)鍵字: C語言 函數(shù)調(diào)用

有個粉絲關(guān)于條件編譯的問題,程序一直編譯報錯。我整理了關(guān)鍵的部分,下面代碼是頭文件中的定義。

關(guān)鍵字: 條件編譯 C語言

首先要看英文和C語言的關(guān)系,有多大層度是需要英文的支持。我們都知道C語言中一共有32個關(guān)鍵詞,控制語句僅有9種,也就是說只需要掌握以上內(nèi)容就可以對C語言進(jìn)行應(yīng)用,對于一些復(fù)雜的指針等更合英文沒有關(guān)系。我相信短短的32個關(guān)...

關(guān)鍵字: C語言

C語言是一門面向過程的、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設(shè)計語言。盡管C語言提供了許多低級...

關(guān)鍵字: C語言 單片機

為什么會寫篇棧變化的文章?做系統(tǒng)分析的話你肯定遇到過一些crash,oops等棘手問題,一般大家都會用gdb,objdump或者addr2line等工具分析pc位置來定位出錯的地方。但是這些分析工具背后的本質(zhì)原理就不見得...

關(guān)鍵字: 函數(shù) ARM C語言 AI

點擊藍(lán)字關(guān)注我們請把努力當(dāng)成一種習(xí)慣,而不是三分鐘熱度。每一個你羨慕的收獲,都是努力用心拼來的。相信人生不會虧待你。12月6日華清遠(yuǎn)見武漢中心迎來了嵌入式21111班的開班典禮班主任介紹班級班規(guī)無規(guī)矩不成方圓,班級班規(guī)的...

關(guān)鍵字: 嵌入式 C語言 LAN TARGET

一直覺得C語言較其他語言最偉大的地方就是C語言中的指針,有些人認(rèn)為指針很簡單,而有些人認(rèn)為指針很難,當(dāng)然這里的對簡單和難并不是等價于對指針的理解程度。為此在這里對C語言中的指針進(jìn)行全面的總結(jié),從底層的內(nèi)存分析,徹底讓讀者...

關(guān)鍵字: 微信 C語言 UNSIGNED INCLUDE

電子技術(shù)資源

850 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉