版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章 C+輸入/輸出流類(lèi)庫(kù) C語(yǔ)言輸入輸出系統(tǒng)的缺陷 C+輸入輸出流 C+輸入輸出流類(lèi)庫(kù) I/O格式控制 文件操作C語(yǔ)言I/O系統(tǒng)缺陷 printf()與scanf()只可用于輸入輸出基本數(shù)據(jù)類(lèi)型。 C+可通過(guò)重載運(yùn)算符“”和“”對(duì)結(jié)構(gòu)類(lèi)型實(shí)現(xiàn)輸入和 輸出。當(dāng)輸入輸出數(shù)據(jù)與預(yù)設(shè)格式不匹配時(shí),C編譯系統(tǒng)不能發(fā)現(xiàn)問(wèn)題,以保證其調(diào)用的正確性。 例printf()與scanf()的缺陷int j=10;float f=2.3void fn()printf(“%d”,f); / 按整型數(shù)據(jù)解碼方式輸出f / 前兩個(gè)字節(jié)的內(nèi)容 scanf(“%d”,&f); / 按整型數(shù)據(jù)編碼方式將數(shù)據(jù)存入f / 前兩
2、個(gè)字節(jié)中 scanf(“%d”,j); / 將一個(gè)整數(shù)存入地址為0 x000A / 的內(nèi)存段中 printf(“%d”, “good”); / 輸出“good”的地址值C+輸入輸出流 流(stream):主機(jī)與外部設(shè)備介質(zhì)間的數(shù)據(jù)流。 標(biāo)準(zhǔn)I/O流的設(shè)備名:C+名字設(shè)備C中的名字默認(rèn)值cin鍵盤(pán)stdin標(biāo)準(zhǔn)輸入 cout屏幕 stdout標(biāo)準(zhǔn)輸出 cerr屏幕 stderr標(biāo)準(zhǔn)錯(cuò)誤輸出(非緩沖方式) clog打印機(jī) stdprn標(biāo)準(zhǔn)錯(cuò)誤輸出(緩沖方式)I/O 流類(lèi)庫(kù) streambuf 類(lèi) streambuf 類(lèi):提供對(duì)緩沖區(qū)的低級(jí)操作,設(shè)置緩沖區(qū)、操作緩沖區(qū)指針、向緩沖區(qū)存取字符。 str
3、eambuf 類(lèi)及其派生類(lèi):streambuffilebufstrstreambufconbufI/O 流類(lèi)庫(kù) ios 類(lèi) ios 類(lèi):提供對(duì)文件和設(shè)備的I/O操作。I/O 流類(lèi)庫(kù) ios 類(lèi)(續(xù)) ios流類(lèi)及其派生類(lèi)均帶有指向streambuf類(lèi)的指針。 ios流類(lèi)的直接派生類(lèi): istream(標(biāo)準(zhǔn)輸入流類(lèi)) ostream(標(biāo)準(zhǔn)輸出流類(lèi)) fstreambase(文件流類(lèi)) strstreambase(串流類(lèi))標(biāo)準(zhǔn)I/O 流類(lèi) 標(biāo)準(zhǔn)輸出類(lèi)(ostream):提供系統(tǒng)標(biāo)準(zhǔn)輸出設(shè)備接口,完成數(shù)據(jù)輸出操作。 標(biāo)準(zhǔn)輸入類(lèi)(istream):提供系統(tǒng)標(biāo)準(zhǔn)輸入設(shè)備接口,完成數(shù)據(jù)輸入操作。 使用標(biāo)準(zhǔn)
4、輸入輸出類(lèi)需包含頭文件“istream.h”、 “ostream.h”或 “iostream.h”。 例1 例2 cin在頭文件中被定義為istream類(lèi)的全局對(duì)象。 cout、cerr和clog為ostream類(lèi)的全局對(duì)象。標(biāo)準(zhǔn)I/O流類(lèi)實(shí)例1/example7-1#include main()coutThis is a test!endl;return 0;This is a test!標(biāo)準(zhǔn)I/O流類(lèi)實(shí)例2/example7-2#include#includemain()char *p=new char20; coutp; coutp=pendl;return 0;please input
5、 a string: computerp=computerI/O格式控制 用流對(duì)象的成員函數(shù)控制數(shù)據(jù)輸入輸出格式。 例1 例2函數(shù)原型功 能 int ios:width(int w);設(shè)置輸出域?qū)抴,缺省值為0 int ios:width();返回當(dāng)前域?qū)捴?int ios:precision(int p);設(shè)置有效數(shù)個(gè)數(shù)p int ios:precision();返回當(dāng)前有效數(shù)設(shè)置值 char ios:fill(char ch);設(shè)置填充字符ch,缺省值為空格 char ios:fill();返回當(dāng)前填充字符I/O格式控制(續(xù)) 輸出格式控制符:頭文件iomanip.h (包含iostrea
6、m.h)中定義,可直接插入流中,控制輸出格式。 例3 例4控制符流成員函數(shù)功能 dec flags(10)置基數(shù)為10 hex flags(16)置基數(shù)為16 oct flags(8)置基數(shù)為8 setfill(c ) flags(c )設(shè)填充字符為c setprecision(n) precision(n)設(shè)輸出有效數(shù)個(gè)數(shù) setw(n) width(n)設(shè)輸出域?qū)挒閚I/O格式控制實(shí)例1/example7-3#includemain()for(int i=1;i8;i+)cout.fill( ); cout.width(i); cout ; cout.fill(m); cout.width
7、(15-2*i); coutmendl; return 0; mmmmmmmmmmmmm mmmmmmmmmmm mmmmmmmmm mmmmmmm mmmmm mmm mI/O格式控制實(shí)例2/example7-4#includevoid main()double f=12.34567; coutf=f; cout default precision=cout.precision()endl; cout.precision(2); coutf=f; cout precision=cout.precision()endl; cout.precision(5); coutf=f; cout pre
8、cision=cout.precision()endl;f=12.3457 default precision=6f=12 precision=2f=12.346 precision=5I/O格式控制實(shí)例3/example7-5#includevoid main()double f=12.34567; coutf=fendl; coutsetprecision(2)f=fendl; coutsetprecision(5)f=fendl;f=12.3457f=12f=12.346I/O格式控制實(shí)例4/example7-6#includemain()for(int i=1;i8;i+)coutse
9、tfill( )setw(i) setfill(m); coutsetw(15-2*i)mendl; return 0;mmmmmmmmmmmmm mmmmmmmmmmm mmmmmmmmm mmmmmmm mmmmm mmm m文件操作 文件操作:打開(kāi)、關(guān)閉、數(shù)據(jù)輸入、數(shù)據(jù)輸出。(包含頭文件fstream.h) 文件流類(lèi):文件流類(lèi)基類(lèi)功能 fstream iostream文件輸入輸出 ifstream istream文件輸入 oftream ostream文件輸出文件操作(續(xù)1) 定義文件流對(duì)象 文件流類(lèi) 文件流對(duì)象名;/建立文件流對(duì)象 文件流類(lèi) 文件流對(duì)象名(文件名); / 建立文件對(duì)象,
10、同時(shí)打開(kāi)文件 文件流變量:建立文件流對(duì)象的檢測(cè)值, 0失敗, 1成功 通過(guò)文件對(duì)象打開(kāi)文件:對(duì)象名.open(文件名,文件打開(kāi)模式, 文件保護(hù)模式);文件操作(續(xù)2) 文件打開(kāi)模式: 標(biāo)志含義 ios:ate如果文件存在,數(shù)據(jù)追加在文件尾 ios:in打開(kāi)文件,讀出數(shù)據(jù)(ifstream默認(rèn)) ios:out打開(kāi)文件,寫(xiě)入數(shù)據(jù)(oftream默認(rèn)) ios:trunc打開(kāi)文件,清除所有數(shù)據(jù) ios:nocreat若文件不存在,返回錯(cuò)誤 ios:noreplace若文件存在,返回錯(cuò)誤 ios:binary以二進(jìn)制方式打開(kāi)文件(否則默認(rèn)為文本)文件操作(續(xù)3) 文件保護(hù)模式:例:fstream f; f.open(“file1”,ios:out|ios:in);文件關(guān)閉:清理文件緩沖區(qū),調(diào)用流對(duì)象成員函數(shù)close()。 例 標(biāo)志含義 filebuf:openprot兼容共享方式(默認(rèn)) filebuf:sh_none獨(dú)占,不共享 filebuf:sh_read允許讀共享 filebuf:sh_write允許寫(xiě)共享文件操作實(shí)例1#include /example7-7main()ofstream fout(testfile); if (!fout) coutCannot open
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新婚沒(méi)孩子離婚協(xié)議書(shū)范文
- 樂(lè)清民政局離婚協(xié)議書(shū)范文章
- 自建房贈(zèng)送給兒子的協(xié)議書(shū)范文
- 腦保健知識(shí)問(wèn)答
- 《失眠癥中醫(yī)診療經(jīng)驗(yàn)集》之失眠癥基本知識(shí)
- 播放英語(yǔ)課件圖片
- 2023-2024學(xué)年云南省曲靖市一中高三下學(xué)期第四次模擬考試數(shù)學(xué)試題試卷
- 分子生物學(xué)基礎(chǔ)第五章遺傳信息的翻譯-從mRNA到蛋白質(zhì)第二節(jié)蛋白質(zhì)生物合成的過(guò)程
- 2023-2024學(xué)年新疆維吾爾自治區(qū)沙灣一中高三第十次模擬考試數(shù)學(xué)試題試卷
- 雨季防汛應(yīng)急預(yù)案
- 廣東省珠海市子期中學(xué)、梅華中學(xué) 2024-2025 學(xué)年上學(xué)期期中考試七年級(jí)數(shù)學(xué)試題(無(wú)答案)
- 2024年河南省信陽(yáng)市招才引智綠色通道招聘市直事業(yè)單位人員183人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 第20課清朝君主專(zhuān)制的強(qiáng)化 教案
- 讀懂中國(guó)茶學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2023年中國(guó)郵政集團(tuán)有限公司招聘考試真題
- QCT457-2023救護(hù)車(chē)技術(shù)規(guī)范
- DZ∕T 0207-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硅質(zhì)原料類(lèi)(正式版)
- 新課標(biāo)背景下的大單元教學(xué)研究:國(guó)內(nèi)外大單元教學(xué)發(fā)展與演進(jìn)綜述
- 新聞采編與制作職業(yè)生涯規(guī)劃
- 走馬燈內(nèi)部蠟燭距離與其旋轉(zhuǎn)速度關(guān)系的探究實(shí)驗(yàn)假設(shè)
- 人教版八年級(jí)上冊(cè)英語(yǔ)全冊(cè)教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
評(píng)論
0/150
提交評(píng)論