第9章-流類庫與輸入_第1頁
第9章-流類庫與輸入_第2頁
第9章-流類庫與輸入_第3頁
第9章-流類庫與輸入_第4頁
第9章-流類庫與輸入_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C++程序設(shè)計(jì)新世紀(jì)應(yīng)用型高等教育教材編審委員會組編主編羅燁李秉璋第二版新世紀(jì)應(yīng)用型高等教育軟件專業(yè)系列規(guī)劃教材第9章流類庫與輸入/輸出9.1流的概念3操作系統(tǒng)是將鍵盤、屏幕、打印機(jī)和通信端口等設(shè)備作為擴(kuò)充文件來處理的。從C++程序員角度來看,這些設(shè)備與磁盤文件并無區(qū)別,與這些設(shè)備的交互也是通過I/O流來實(shí)現(xiàn)的。在C++中,I/O可以分為:面向標(biāo)準(zhǔn)設(shè)備的I/O、面向文件的I/O、面向字符串的I/O三類。面向標(biāo)準(zhǔn)設(shè)備的I/O是指程序從標(biāo)準(zhǔn)輸入設(shè)備鍵盤獲取數(shù)據(jù),把程序中的數(shù)據(jù)輸出至標(biāo)準(zhǔn)輸出設(shè)備顯示器;面向文件的I/O是指程序從外存儲器的文件中獲取數(shù)據(jù),把數(shù)據(jù)保存到外存儲器的文件中;面向字符串的I/O是指從程序的字符串變量中獲取數(shù)據(jù),把數(shù)據(jù)保存到字符串變量中。本章將介紹這三種I/O。9.2C++的基本流類體系4C++的流類庫是用繼承方式建立的一個I/O類庫,由抽象類ios及其派生類構(gòu)成ios類體系,共同完成I/O操作。ios類的體系結(jié)構(gòu)如圖9-1所示。9.2.1

流類庫9.2C++的基本流類體系5在C++的流類庫中定義了4個全局文本流對象:cin、cout、cerr和clog。使用這4個流對象可以完成基本人機(jī)交互功能。其中cin是istream類的實(shí)例,稱為標(biāo)準(zhǔn)輸入流(對象),以鍵盤為其對應(yīng)的標(biāo)準(zhǔn)設(shè)備,通過流提取運(yùn)算符,可以從鍵盤上輸入數(shù)據(jù)。cout是ostream類的實(shí)例,稱為標(biāo)準(zhǔn)輸出流(對象),以顯示器為標(biāo)準(zhǔn)設(shè)備。通過流插入運(yùn)算符,可以將數(shù)據(jù)輸出至顯示器。cerr、clog稱為標(biāo)準(zhǔn)錯誤輸出流。標(biāo)準(zhǔn)錯誤輸出設(shè)備也是顯示器。9.2.2

標(biāo)準(zhǔn)流對象9.3標(biāo)準(zhǔn)設(shè)備的輸入/輸出6istream類提供了格式化和非格式化的輸入功能。最常用的輸入方法是在標(biāo)準(zhǔn)輸入流對象cin上使用提取運(yùn)算符“>>”輸入數(shù)據(jù)。格式如下:9.3.1

輸入流9.3標(biāo)準(zhǔn)設(shè)備的輸入/輸出7ostream類提供了格式和非格式的輸出功能。最常用的輸出方法是在標(biāo)準(zhǔn)輸出流對象cout上使用插入運(yùn)算符“<<”輸出數(shù)據(jù)。格式如下:插入運(yùn)算符“<<”可以接受任何表達(dá)式,包括函數(shù)調(diào)用,只要其結(jié)果是能被插入運(yùn)算符接受的數(shù)據(jù)。輸出流對象cout將數(shù)據(jù)從C++機(jī)內(nèi)格式轉(zhuǎn)換成文本格式后,輸出至標(biāo)準(zhǔn)輸出流對象。插入運(yùn)算符返回cout流對象的引用,所以插入運(yùn)算符也可以連用。9.3.2輸出流9.3標(biāo)準(zhǔn)設(shè)備的輸入/輸出81.輸入流成員函數(shù)9.3.3

標(biāo)準(zhǔn)輸入/輸出流成員函數(shù)9.3標(biāo)準(zhǔn)設(shè)備的輸入/輸出9進(jìn)行I/O操作時(shí),可能會發(fā)生各種錯誤。特別是從輸入流中提取數(shù)據(jù),出現(xiàn)流錯誤的可能性較大,例如輸入數(shù)據(jù)的類型、遇到文件結(jié)束等。程序需要檢測這些錯誤,并做相應(yīng)的處理。為了檢測出數(shù)據(jù)流產(chǎn)生的各種錯誤,提高程序的健壯性,在ios類中有一個稱為流錯誤狀態(tài)字的保護(hù)型整數(shù)state,用該整數(shù)的若干二進(jìn)制位保存流的當(dāng)前狀態(tài)。9.3.4

數(shù)據(jù)流的錯誤檢測9.3標(biāo)準(zhǔn)設(shè)備的輸入/輸出109.3.4

數(shù)據(jù)流的錯誤檢測*9.4流的格式控制111.格式狀態(tài)字9.4.1

使用ios類的格式控制函數(shù)*9.4流的格式控制121.格式狀態(tài)字9.4.1

使用ios類的格式控制函數(shù)*9.4流的格式控制132.格式控制函數(shù)9.4.1使用ios類的格式控制函數(shù)*9.4流的格式控制142.格式控制函數(shù)9.4.1使用ios類的格式控制函數(shù)*9.4流的格式控制159.4.2

使用預(yù)定義的操作子*9.4流的格式控制169.4.2

使用預(yù)定義的操作子9.5文件的輸入/輸出179.5.1

文件的基本概念C++把文件看成一個有序的字節(jié)流,稱為流式文件。文件操作前,要打開文件。文件打開后,該文件就和程序中的文件流對象建立了關(guān)聯(lián)。在程序中就通過該文件流對象對打開的文件進(jìn)行讀/寫操作。9.5文件的輸入/輸出189.5.2

文件的操作步驟在C++中使用文件的步驟是固定的:(1)建立一個文件流對象;(2)打開文件,將文件流對象和要處理的外存儲器上的文件建立關(guān)聯(lián);(3)讀寫文件,通過流對象的成員函數(shù)或插入/提取運(yùn)算符完成對文件的讀寫;(4)關(guān)閉文件,當(dāng)不再使用文件時(shí),要通過關(guān)閉文件流對象,解除文件流對象與文件的關(guān)聯(lián)。之后該文件流對象還可以繼續(xù)與其他文件建立關(guān)聯(lián)。9.5文件的輸入/輸出199.5.2

文件的操作步驟1.建立一個文件流對象使用文件前,必須先建立文件流類對象。建立文件流對象的語法形式為:9.5文件的輸入/輸出209.5.2

文件的操作步驟4.關(guān)閉文件文件操作結(jié)束后,要顯式關(guān)閉該文件。其語法形式為:9.5文件的輸入/輸出219.5.4

二進(jìn)制文件的讀/寫1.使用get和put函數(shù)讀寫任意格式的文件2.使用read和write函數(shù)成組讀寫9.5文件的輸入/輸出229.5.5

二進(jìn)制文件的隨機(jī)讀寫*9.6字符串流的輸入/輸出239.5.5

二進(jìn)制文件的隨機(jī)讀寫串流類包括輸入字符串流類istrstream、輸出字符串流類ostrstream、字符串流類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論