




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、IO流與文件系統(tǒng)王瑞上海大學(xué)通信與信息工程學(xué)院I/O系統(tǒng)的作用2022/7/182應(yīng)用程序I/O系統(tǒng)磁盤(pán)鍵盤(pán)顯示器文件文件I/O系統(tǒng)為程序與I/O設(shè)備之間進(jìn)行數(shù)據(jù)交互提供了途徑。C+為何有自己的I/O系統(tǒng)C語(yǔ)言的標(biāo)準(zhǔn)輸入輸出函數(shù)和只能處理基本數(shù)據(jù)類(lèi)型,對(duì)用戶(hù)自定義類(lèi)型無(wú)能為力。C+可以重載輸入輸出運(yùn)算符,能夠處理用戶(hù)自定義類(lèi)型。C+采用繼承方式來(lái)設(shè)計(jì)流庫(kù),功能更強(qiáng)大,擴(kuò)充性更好。2022/7/183C+流庫(kù)的結(jié)構(gòu)C+流庫(kù)是從繼承方法建立起來(lái)的一個(gè)輸入/輸出類(lèi)庫(kù),它具有兩個(gè)平行的基類(lèi),即streambuf類(lèi)和ios類(lèi),所有其他的流類(lèi)都是從它們直接或間接地派生出來(lái)的。streambuf類(lèi)提供對(duì)緩沖
2、區(qū)的低級(jí)操作:2022/7/184streambuffilebufstrstreambufconbufios類(lèi)及其派生類(lèi)提供用戶(hù)使用流類(lèi)的接口:2022/7/185iosistreamostreamfstreambasestrstreambaseifstream istrstreamofstream ostrstream constreamfstreamstrstreamiostreamistream-withassignostream-withassigniostream-withassign有關(guān)頭文件和預(yù)定義流對(duì)象包含常用流類(lèi)聲明的頭文件:iostream.h支持標(biāo)準(zhǔn)I/0操作fstrea
3、m.h 支持文件I/0操作strstream.h 支持串I/0操作iomanip.h支持大多數(shù)流操縱符當(dāng)開(kāi)始執(zhí)行C+程序時(shí),有幾個(gè)自動(dòng)打開(kāi)的預(yù)定義流:cin標(biāo)準(zhǔn)輸入cout標(biāo)準(zhǔn)輸出cerr不帶緩沖標(biāo)準(zhǔn)出錯(cuò)信息輸出clog帶緩沖標(biāo)準(zhǔn)出錯(cuò)信息輸出2022/7/186輸入和輸出istream和ostream是用戶(hù)使用流庫(kù)的主要界面之一。istream提供了主要的輸入操作,可以通過(guò)istream完成如下操作:從輸入流中獲取單個(gè)字符。從輸入流中獲取一行數(shù)據(jù)。從輸入流中獲取指定字節(jié)數(shù)的數(shù)據(jù)。將文件指針移動(dòng)到指定位置,等等。2022/7/187ostream提供了主要的輸出操作,可以通過(guò)ostream完成如
4、下操作:刷新輸出流。向輸出流中寫(xiě)入指定字節(jié)數(shù)的數(shù)據(jù)。將文件指針移動(dòng)到指定位置,等等。istream和ostream分別重載了和兩個(gè)運(yùn)算符,用戶(hù)可以很方便地使用這兩個(gè)運(yùn)算符對(duì)預(yù)定義類(lèi)型進(jìn)行輸入和輸出。用戶(hù)也可以重載這兩個(gè)運(yùn)算符,從而能夠輸入和輸出自定義類(lèi)的對(duì)象。2022/7/188格式控制C+提供了兩種格式控制的方法:使用操作符使用ios類(lèi)中實(shí)現(xiàn)格式控制的成員函數(shù)2022/7/189使用操作函數(shù)控制格式C+ I/O流庫(kù)提供了一些操作符(如下表所示),可以直接嵌入到輸入/輸出語(yǔ)句中來(lái)實(shí)現(xiàn)特殊格式的控制。2022/7/18102022/7/1811操縱符 含義 I/Odec 以十進(jìn)制為基 I/Ooc
5、t 以八進(jìn)制為基 I/Ohex 以十六進(jìn)制為基 I/Ows 提取輸入中的空白 inputendl 插入換行并刷新流 outputends 在串后插入終止符 outputflush 刷新流 outputsetbase(int) 設(shè)置基(0,8,10,16) outputresetiosflags(long ) 清除參數(shù)指定的格式位 I/Osetiosflags(long ) 設(shè)置參數(shù)指定的格式位 I/Osetfill(int ) 設(shè)置填充字符 I/Osetprecision(int) 設(shè)置顯示精度 I/Osetw(int) 設(shè)置顯示域?qū)?I/O例子void main() int a=100; c
6、outhexaendl; coutoctaendl; coutdecaendl;/結(jié)果:641441002022/7/1812使用ios類(lèi)成員函數(shù)格式化輸入輸出的格式由各種格式狀態(tài)標(biāo)志來(lái)確定。這些狀態(tài)標(biāo)志在狀態(tài)量中各占一位,它們?cè)趇os類(lèi)中定義為枚舉量,如下表所示。這些成員函數(shù)的功能包括:設(shè)置格式狀態(tài)標(biāo)志(setf)清除格式狀態(tài)標(biāo)志(unsetf)獲取格式狀態(tài)標(biāo)志(flag)設(shè)置域?qū)挕⑻畛渥址驮O(shè)置精度(width、fill、precision等)2022/7/18132022/7/1814狀態(tài)標(biāo)志 含義 I/Oskipws 跳過(guò)輸入中的空白 inputleft 左對(duì)齊輸出 outputrig
7、ht 右對(duì)齊輸出 outputinternal 在引導(dǎo)符或基指示符后填入字符 outputdec 以十進(jìn)制為基 I/Ooct 以八進(jìn)制為基 I/Ohex 以十六進(jìn)制為基 I/Oshowbase 在輸出中顯示基指示符 outputshowpoint 在輸出中顯示小數(shù)點(diǎn) outputuppercase 十六進(jìn)制輸出時(shí),字母大寫(xiě) outputshowpos 正整數(shù)前顯示“+” outputscientific 科學(xué)計(jì)數(shù)法顯示浮點(diǎn)數(shù) outputfixed 定點(diǎn)形式顯示浮點(diǎn)數(shù) outputunitbuf 在輸出后立即刷新所有流 outputstdio 輸出后刷新stdout和stderr output
8、例子void main()int a=20;double b=111.11; cout.setf(ios:showpos|ios:scientific);coutaendl;coutbendl;/結(jié)果:+20+1.111100e+0022022/7/1815文件I/OC+把文件看作是字符序列。根據(jù)數(shù)據(jù)的組織形式,文件可分成ASCII文件和二進(jìn)制文件兩種。ASCII文件又稱(chēng)為文本文件,它的每一個(gè)字節(jié)放一個(gè)ASCII代碼,代表一個(gè)字符,這樣便于對(duì)字符進(jìn)行處理,也便于輸出,但占用存儲(chǔ)空間較多。二進(jìn)制文件是把內(nèi)存的數(shù)據(jù),按其在內(nèi)存中的存儲(chǔ)形式原樣寫(xiě)到磁盤(pán)上。用二進(jìn)制形式輸出數(shù)據(jù),可節(jié)省外存空間和轉(zhuǎn)換時(shí)
9、間,但一個(gè)字節(jié)并不對(duì)應(yīng)一個(gè)字符。一般,中間結(jié)果常用二進(jìn)制文件保存,以減少外存開(kāi)銷(xiāo)。2022/7/1816C+中進(jìn)行文件I/O的基本過(guò)程在C+中,要進(jìn)行文件的I/O,必須首先創(chuàng)建一個(gè)流,然后將這個(gè)流與文件相關(guān)聯(lián),即打開(kāi)文件,此時(shí)才能進(jìn)行讀/寫(xiě)操作,完成后再關(guān)閉這個(gè)文件。2022/7/1817文件的打開(kāi)和關(guān)閉C+有三種類(lèi)型的文件流:輸入文件ifstream,輸出文件流ofstream,輸入/輸出文件流fstream。這些文件流都定義在fstream.h中。要執(zhí)行文件輸入/輸出,須做三件事:在程序中要包含頭文件fstream.h建立流。建立流的過(guò)程就是定義流類(lèi)的對(duì)象。使用open()函數(shù)打開(kāi)文件,也就是使某一文件與上面的某一流相聯(lián)系。2022/7/1818舉例#include #include void main() char buf32; ifstream in;memset(buf,0,siz
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河源廣東河源市消防救援支隊(duì)2025年第一批政府專(zhuān)職消防員招聘86人筆試歷年參考題庫(kù)附帶答案詳解
- 動(dòng)物炭黑、動(dòng)物膠及其衍生物項(xiàng)目效益評(píng)估報(bào)告
- 沈陽(yáng)工業(yè)大學(xué)《藥用作物栽培學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆高考語(yǔ)文補(bǔ)充背誦詩(shī)詞:《青玉案·元夕》教學(xué)設(shè)計(jì)
- 南京視覺(jué)藝術(shù)職業(yè)學(xué)院《Java應(yīng)用設(shè)計(jì)案例》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科技學(xué)院《光電成像技術(shù)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南職業(yè)技術(shù)學(xué)院《園林建筑設(shè)計(jì)實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 建筑防火強(qiáng)條實(shí)施監(jiān)理檢查表
- 2025年度封閉陽(yáng)臺(tái)雨水收集系統(tǒng)建設(shè)合同
- 2025年度照明工程知識(shí)產(chǎn)權(quán)保護(hù)合同-@-1
- 公司廠區(qū)保潔培訓(xùn)
- 江蘇省招標(biāo)中心有限公司招聘筆試沖刺題2025
- 2024年防盜門(mén)銷(xiāo)售合同范本
- 支付令申請(qǐng)書(shū)(2025版)
- 麻醉護(hù)士的 工作職責(zé)
- 2025年中考語(yǔ)文一輪復(fù)習(xí):九年級(jí)下冊(cè)知識(shí)點(diǎn)梳理
- 旅游健康與保健知識(shí)
- 亞朵酒店前臺(tái)述職報(bào)告
- 《肝衰竭診治指南(2024版)》解讀
- 數(shù)據(jù)安全重要數(shù)據(jù)風(fēng)險(xiǎn)評(píng)估報(bào)告
- 孝悌課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論