《C程序設(shè)計(jì)》電子教案第10章流類庫(kù)與輸入輸出.ppt
《《C程序設(shè)計(jì)》電子教案第10章流類庫(kù)與輸入輸出.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C程序設(shè)計(jì)》電子教案第10章流類庫(kù)與輸入輸出.ppt(59頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第10章流類庫(kù)與輸入輸出,10.1I/O標(biāo)準(zhǔn)流類10.2格式化I/O10.3文件流10.4字符串流,10.1I/O標(biāo)準(zhǔn)流類,10.1.1預(yù)定義流10.1.2C++中的流類庫(kù),返回首頁(yè),,在C++語(yǔ)言中,數(shù)據(jù)的輸入和輸出(簡(jiǎn)寫(xiě)為I/O)包括對(duì)標(biāo)準(zhǔn)輸入設(shè)備鍵盤和標(biāo)準(zhǔn)輸出設(shè)備顯示器、對(duì)在外存磁盤上的文件和對(duì)內(nèi)存中指定的字符串存儲(chǔ)空間進(jìn)行輸入輸出這三個(gè)方面。對(duì)標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備的輸入輸出簡(jiǎn)稱為標(biāo)準(zhǔn)I/O,對(duì)在外存磁盤上文件的輸入輸出簡(jiǎn)稱為文件I/O,對(duì)內(nèi)存中指定的字符串存儲(chǔ)空間的輸入輸出簡(jiǎn)稱為串I/O。,,C++中把數(shù)據(jù)之間的傳輸操作稱作流。在C++中,流既可以表示數(shù)據(jù)從內(nèi)存?zhèn)魉偷侥硞€(gè)載體或設(shè)備中,即輸出流;也可以表示數(shù)據(jù)從某個(gè)載體或設(shè)備傳送到內(nèi)存緩沖區(qū)變量中,即輸入流。在進(jìn)行I/O操作時(shí),首先打開(kāi)操作,使流和文件發(fā)生聯(lián)系,建立聯(lián)系后的文件才允許數(shù)據(jù)流入或流出,輸入或輸出結(jié)束后,使用關(guān)閉操作使文件與流斷開(kāi)聯(lián)系。,,C++中所有流都是相同的,但文件可以不同。使用流以后,程序用流統(tǒng)一對(duì)各種計(jì)算機(jī)設(shè)備和文件進(jìn)行操作,使程序與設(shè)備、程序與文件無(wú)關(guān),從而提高了程序設(shè)計(jì)的通用性和靈活性。也就是說(shuō),無(wú)論與流相聯(lián)系的實(shí)際物理設(shè)備差別有多大,流都采用相同的方式運(yùn)行。這種機(jī)制使得流可以跨越物理設(shè)備平臺(tái),實(shí)現(xiàn)流的透明運(yùn)作,而與實(shí)際的物理設(shè)備無(wú)關(guān)。例如,往顯示器上輸出字符和向磁盤文件或打印機(jī)輸出字符,盡管接受輸出的物理設(shè)備不同,但具體操作過(guò)程是相同的。,10.1.1預(yù)定義流,1.cout在ostream輸出流類中定義有對(duì)左移操作符>重載的一組公用成員函數(shù),函數(shù)的具體聲明格式為:istream,,3.cerrcerr類似標(biāo)準(zhǔn)錯(cuò)誤文件。cerr與cout的差別在于:(1)cerr不能重定向。(2)cerr不能被緩沖,它的輸出總是直接傳達(dá)到標(biāo)準(zhǔn)輸出設(shè)備上。4.clogclog是不能重定向的,但是可以被緩沖。在某些系統(tǒng)中,由于緩沖,使用clog代替cerr可以改進(jìn)顯示速度。clog<<"Error"<<"\n";,返回本節(jié),10.1.2C++中的流類庫(kù),C++語(yǔ)言系統(tǒng)為實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出定義了一個(gè)龐大的類庫(kù),它包括的類主要有ios,istream,ostream,iostream,ifstream,ofstream,fstream,istrstream,ostrstream和strstream等。其中ios為根基類,它直接派生四個(gè)類:輸入流類istream、輸出流類ostream、文件流基類fstreambase和字符串流基類strstreambase,輸入文件流類ifstream同時(shí)繼承了輸入流類和文件流基類(當(dāng)然對(duì)于根基類是間接繼承),輸出文件流類ofstream同時(shí)繼承了輸出流類和文件流基類,輸入字符串流類istrstream同時(shí)繼承了輸入流類和字符串流基類,輸出字符串流類ostrstream同時(shí)繼承了輸出流類和字符串流基類,輸入輸出流類iostream同時(shí)繼承了輸入流類和輸出流類,輸入輸出文件流類fstream同時(shí)繼承了輸入輸出流類和文件流基類,輸入輸出字符串流類strstream同時(shí)繼承了輸入輸出流類和字符串流基類。,返回本節(jié),10.2格式化I/O,10.2.1ios類中的枚舉常量10.2.2使用ios成員函數(shù)10.2.3使用I/O操作符10.2.4檢測(cè)流操作的錯(cuò)誤,返回首頁(yè),10.2.1ios類中的枚舉常量,在根基類ios中定義有三個(gè)用戶需要使用的枚舉類型,由于它們是在公用成員部分定義的,所以其中的每個(gè)枚舉類型常量在加上ios::前綴后都可以為本類成員函數(shù)和所有外部函數(shù)訪問(wèn)。在三個(gè)枚舉類型中有一個(gè)無(wú)名枚舉類型,其中定義的每個(gè)枚舉常量都是用于設(shè)置控制輸入輸出格式的標(biāo)志使用的。該枚舉類型定義如下:enum{skipws,left,right,internal,dec,oct,hex,showbase,showpoint,uppercase,showpos,scientific,fixed,unitbuf,stdio};,,各枚舉常量的含義如下:(1)skipws。(2)left,right,internal。(3)dec,oct,hex。(4)showbase。(5)showpoint。(6)uppercase。(7)showpos。(8)scientific,fixed。(9)unitbuf,stdio。,返回本節(jié),10.2.2使用ios成員函數(shù),ios類提供成員函數(shù)對(duì)流的狀態(tài)進(jìn)行檢測(cè)和進(jìn)行輸入輸出格式控制等操作,每個(gè)成員函數(shù)的聲明格式和簡(jiǎn)要說(shuō)明如下:intbad();//操作出錯(cuò)時(shí)返回非0值inteof();//讀取到流中最后的文件結(jié)束符時(shí)返回非0值intfail();//操作失敗時(shí)返回非0值voidclear();//清除bad,eof和fail所對(duì)應(yīng)的標(biāo)志狀態(tài),使之恢復(fù)為正常狀態(tài)//值0,使good標(biāo)志狀態(tài)恢復(fù)為1charfill();//返回當(dāng)前使用的填充字符charfill(charc);//重新設(shè)置流中用于輸出數(shù)據(jù)的填充字符為c的值,返回//此前的填充字符。系統(tǒng)預(yù)設(shè)置填充字符為空格longflags();//返回當(dāng)前用于I/O控制的格式狀態(tài)字,,longflags(longf);//重新設(shè)置格式狀態(tài)字為f的值,返回此前的格式狀態(tài)字intgood();//操作正常時(shí)返回非0值,當(dāng)操作出錯(cuò)、失敗和讀到文件//結(jié)束符時(shí)均為不正常,則返回0intprecision();//返回浮點(diǎn)數(shù)輸出精度,即輸出的有效數(shù)字的位數(shù)intprecision(intn);//設(shè)置浮點(diǎn)數(shù)的輸出精度為n,返回此前的輸出精度。系統(tǒng)預(yù)設(shè)//置的輸出精度為6,即輸出的浮點(diǎn)數(shù)最多具有6位為有效數(shù)字intrdstate();//操作正常時(shí)返回0,否則返回非0值,它與good()正好相反longsetf(longf);//根據(jù)參數(shù)f設(shè)置相應(yīng)的格式化標(biāo)志,返回此前的設(shè)置。該參數(shù)//f所對(duì)應(yīng)的實(shí)參為無(wú)名枚舉類型中的枚舉常量(又稱格式化常//量),可以同時(shí)使用一個(gè)或多個(gè)常量,每?jī)蓚€(gè)常量之間要用按位或//操作符連接。如需要左對(duì)齊輸出,并使數(shù)值中的字母大寫(xiě)時(shí),//則調(diào)用該函數(shù)的實(shí)參為ios::left|ios::uppercase,,longunsetf(longf);//根據(jù)參數(shù)f清除相應(yīng)的格式化標(biāo)志,返回此前的設(shè)置。如要//清除此前的左對(duì)齊輸出設(shè)置,恢復(fù)默認(rèn)的右對(duì)齊輸出設(shè)置,//則調(diào)用該函數(shù)的實(shí)參為ios::leftintwidth();//返回當(dāng)前的輸出域?qū)?。若返回?cái)?shù)值0則表明沒(méi)為剛才輸出的數(shù)//值設(shè)置輸出域?qū)?。輸出域?qū)捠侵篙敵龅闹翟诹髦兴加械淖止?jié)數(shù)intwidth(intw);//設(shè)置下一個(gè)數(shù)據(jù)值的輸出域?qū)挒閣,返回為輸出上一個(gè)數(shù)據(jù)值//所規(guī)定的域?qū)?,若無(wú)規(guī)定則返回0。注意:此設(shè)置不是一直有//效,而只是對(duì)下一個(gè)輸出數(shù)據(jù)有效,,例10-2:給出以下程序的運(yùn)行結(jié)果。#includevoidmain(){intx=123;doubley=-3.456789;cout<<"x=";cout.width(10);//設(shè)置輸出下一個(gè)數(shù)據(jù)的域?qū)挒?0cout<- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- C程序設(shè)計(jì) 程序設(shè)計(jì) 電子 教案 10 章流類庫(kù) 輸入輸出
鏈接地址:http://m.appdesigncorp.com/p-11498688.html