最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++緩沖區(qū),IO模型,流,對(duì)象

2023-07-02 23:30 作者:我是信信信  | 我要投稿

1.為什么沒有緩沖區(qū),數(shù)據(jù)讀取效率低??

緩沖區(qū)就是內(nèi)存中的區(qū)域,如果沒有緩沖區(qū),程序就不能和內(nèi)存交互,只能和硬盤交互。硬盤存儲(chǔ)信息以512字節(jié)(或更多) 的塊為單位,那傳輸信息自然也是;而程序只能一個(gè)字節(jié)一個(gè)字節(jié)地讀取數(shù)據(jù),二者讀取的速率并不匹配,硬盤先要把512字節(jié)取出來(lái),然后等待程序逐字節(jié)地讀取數(shù)據(jù),在程序完成讀取之前,硬盤處于等待狀態(tài),這樣并沒有發(fā)揮硬盤讀取數(shù)據(jù)的能力,另外程序需要大量與硬盤交互,這樣會(huì)造成許多額外的開銷。因此,我們考慮緩沖區(qū),硬盤先把數(shù)據(jù)放到緩沖區(qū)(內(nèi)存)中,然后程序逐字節(jié)地讀取數(shù)據(jù),由于內(nèi)存讀取速度快于硬盤,并且硬盤可以一直向緩沖區(qū)傳輸數(shù)據(jù)而無(wú)需等待,從而大大地提升讀取效率!


2.鍵盤輸入為什么需要緩沖區(qū)?

對(duì)于鍵盤輸入,每次按鍵地?cái)?shù)據(jù)量十分小(通常只有一個(gè)字符),而用戶按鍵頻率低,因此鍵盤產(chǎn)生的數(shù)據(jù)可以被程序接受而無(wú)需緩沖區(qū),那么設(shè)置緩沖區(qū)的目的是什么呢?

設(shè)置緩沖區(qū)是為了給予用戶“容錯(cuò)”的機(jī)會(huì),用戶輸入的字符會(huì)被保留在緩沖區(qū),如果用戶不小心輸錯(cuò)了,可以在緩沖區(qū)中修改,然后按下回車(換行),表示輸入完成,然后程序再讀取數(shù)據(jù)。如果沒有緩沖區(qū),從鍵盤中輸入的任何字符都將直接送給程序,這十分“冒進(jìn)”!


3.在C++中,對(duì)象代表流?

對(duì)象代表流,其中「對(duì)象」是指通過(guò)「類類型」創(chuàng)建的「類對(duì)象」,「流」指「字符流」。

對(duì)象封裝了對(duì)字符流讀取和寫入的實(shí)現(xiàn)細(xì)節(jié),只是提供使用接口。我們可以通過(guò)類對(duì)象來(lái)調(diào)用接口(公共成員函數(shù)),從而實(shí)現(xiàn)把數(shù)據(jù)寫入到字符流中或者從字符流中讀取數(shù)據(jù)。

載入iostream文件就自動(dòng)地創(chuàng)建了cout對(duì)象,創(chuàng)建這樣的對(duì)象會(huì)自動(dòng)創(chuàng)建緩沖區(qū),并且將cout對(duì)象和其流關(guān)聯(lián)起來(lái),同時(shí)cout對(duì)象可以使用類成員函數(shù)對(duì)流(字符流)處理。

比如:cout<<"Bjarne free"?;, 把字符串"Bjarne?free"放入到cout的緩沖區(qū)中,相當(dāng)于字符串"Bjarne?free"和cout關(guān)聯(lián)起來(lái),然后cout調(diào)用成員函數(shù)對(duì)"Bjarne?free"進(jìn)行處理。


使用ostream對(duì)象 (如cout)來(lái)處理輸出。創(chuàng)建這樣的對(duì)象將打開一個(gè)流,自動(dòng)創(chuàng)建緩沖 區(qū),并將其與流關(guān)聯(lián)起來(lái),同時(shí)使得能夠使用類成員函數(shù)。

std::cinstd::cout就是兩個(gè)最常見的流對(duì)象,根據(jù)上面所述,對(duì)象代表流,因此對(duì)「類對(duì)象」處理,可以認(rèn)為就是對(duì)「字符流」處理,當(dāng)然,這樣做的前提是,先要把類對(duì)象和字符流關(guān)聯(lián)起來(lái)。比如,對(duì)于cin來(lái)說(shuō),就是把cin和鍵盤的字符流關(guān)聯(lián)起來(lái),對(duì)cin處理,相當(dāng)于對(duì)鍵盤輸入的字符流處理;ifstream類類型定義的類對(duì)象就是和文件流關(guān)聯(lián)起來(lái),比如 ifstream in (file);,類對(duì)象in和文件file關(guān)聯(lián)起來(lái),對(duì)類對(duì)象in處理,相當(dāng)于對(duì)file文件流處理,通過(guò)in讀取數(shù)據(jù),相當(dāng)于對(duì)文件中的文件流讀取數(shù)據(jù)。

C++緩沖區(qū),IO模型,流,對(duì)象的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
当阳市| 法库县| 新干县| 凤台县| 卓尼县| 资兴市| 吉林市| 奉贤区| 黄石市| 马尔康县| 琼结县| 克东县| 卢湾区| 新蔡县| 电白县| 社旗县| 聂荣县| 辽阳市| 云龙县| 嘉峪关市| 循化| 剑河县| 琼中| 广西| 马龙县| 札达县| 宜章县| 蓬安县| 蓬溪县| 榆树市| 晋州市| 云浮市| 山东省| 中西区| 临城县| 汕尾市| 云南省| 库尔勒市| 浦县| 阿拉尔市| 施秉县|