五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
安丘市| 皮山县| 新闻| 三穗县| 江永县| 乡宁县| 海阳市| 林芝县| 外汇| 北流市| 东阿县| 河间市| 芷江| 蒙自县| 大冶市| 梨树县| 大兴区| 加查县| 驻马店市| 西畴县| 叶城县| 图片| 宜州市| 南通市| 玉林市| 祁连县| 铜鼓县| 繁昌县| 海安县| 保定市| 商城县| 万年县| 长泰县| 山西省| 中牟县| 那坡县| 彰化市| 泗阳县| 黔东| 平潭县| 台南县|