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