《C程序設計》電子教案第10章流類庫與輸入輸出.ppt
《《C程序設計》電子教案第10章流類庫與輸入輸出.ppt》由會員分享,可在線閱讀,更多相關《《C程序設計》電子教案第10章流類庫與輸入輸出.ppt(59頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第10章流類庫與輸入輸出,10.1I/O標準流類10.2格式化I/O10.3文件流10.4字符串流,10.1I/O標準流類,10.1.1預定義流10.1.2C++中的流類庫,返回首頁,,在C++語言中,數(shù)據(jù)的輸入和輸出(簡寫為I/O)包括對標準輸入設備鍵盤和標準輸出設備顯示器、對在外存磁盤上的文件和對內(nèi)存中指定的字符串存儲空間進行輸入輸出這三個方面。對標準輸入設備和標準輸出設備的輸入輸出簡稱為標準I/O,對在外存磁盤上文件的輸入輸出簡稱為文件I/O,對內(nèi)存中指定的字符串存儲空間的輸入輸出簡稱為串I/O。,,C++中把數(shù)據(jù)之間的傳輸操作稱作流。在C++中,流既可以表示數(shù)據(jù)從內(nèi)存?zhèn)魉偷侥硞€載體或設備中,即輸出流;也可以表示數(shù)據(jù)從某個載體或設備傳送到內(nèi)存緩沖區(qū)變量中,即輸入流。在進行I/O操作時,首先打開操作,使流和文件發(fā)生聯(lián)系,建立聯(lián)系后的文件才允許數(shù)據(jù)流入或流出,輸入或輸出結束后,使用關閉操作使文件與流斷開聯(lián)系。,,C++中所有流都是相同的,但文件可以不同。使用流以后,程序用流統(tǒng)一對各種計算機設備和文件進行操作,使程序與設備、程序與文件無關,從而提高了程序設計的通用性和靈活性。也就是說,無論與流相聯(lián)系的實際物理設備差別有多大,流都采用相同的方式運行。這種機制使得流可以跨越物理設備平臺,實現(xiàn)流的透明運作,而與實際的物理設備無關。例如,往顯示器上輸出字符和向磁盤文件或打印機輸出字符,盡管接受輸出的物理設備不同,但具體操作過程是相同的。,10.1.1預定義流,1.cout在ostream輸出流類中定義有對左移操作符>重載的一組公用成員函數(shù),函數(shù)的具體聲明格式為:istream,,3.cerrcerr類似標準錯誤文件。cerr與cout的差別在于:(1)cerr不能重定向。(2)cerr不能被緩沖,它的輸出總是直接傳達到標準輸出設備上。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ù)訪問。在三個枚舉類型中有一個無名枚舉類型,其中定義的每個枚舉常量都是用于設置控制輸入輸出格式的標志使用的。該枚舉類型定義如下: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();//讀取到流中最后的文件結束符時返回非0值intfail();//操作失敗時返回非0值voidclear();//清除bad,eof和fail所對應的標志狀態(tài),使之恢復為正常狀態(tài)//值0,使good標志狀態(tài)恢復為1charfill();//返回當前使用的填充字符charfill(charc);//重新設置流中用于輸出數(shù)據(jù)的填充字符為c的值,返回//此前的填充字符。系統(tǒng)預設置填充字符為空格longflags();//返回當前用于I/O控制的格式狀態(tài)字,,longflags(longf);//重新設置格式狀態(tài)字為f的值,返回此前的格式狀態(tài)字intgood();//操作正常時返回非0值,當操作出錯、失敗和讀到文件//結束符時均為不正常,則返回0intprecision();//返回浮點數(shù)輸出精度,即輸出的有效數(shù)字的位數(shù)intprecision(intn);//設置浮點數(shù)的輸出精度為n,返回此前的輸出精度。系統(tǒng)預設//置的輸出精度為6,即輸出的浮點數(shù)最多具有6位為有效數(shù)字intrdstate();//操作正常時返回0,否則返回非0值,它與good()正好相反longsetf(longf);//根據(jù)參數(shù)f設置相應的格式化標志,返回此前的設置。該參數(shù)//f所對應的實參為無名枚舉類型中的枚舉常量(又稱格式化常//量),可以同時使用一個或多個常量,每兩個常量之間要用按位或//操作符連接。如需要左對齊輸出,并使數(shù)值中的字母大寫時,//則調(diào)用該函數(shù)的實參為ios::left|ios::uppercase,,longunsetf(longf);//根據(jù)參數(shù)f清除相應的格式化標志,返回此前的設置。如要//清除此前的左對齊輸出設置,恢復默認的右對齊輸出設置,//則調(diào)用該函數(shù)的實參為ios::leftintwidth();//返回當前的輸出域寬。若返回數(shù)值0則表明沒為剛才輸出的數(shù)//值設置輸出域寬。輸出域寬是指輸出的值在流中所占有的字節(jié)數(shù)intwidth(intw);//設置下一個數(shù)據(jù)值的輸出域寬為w,返回為輸出上一個數(shù)據(jù)值//所規(guī)定的域寬,若無規(guī)定則返回0。注意:此設置不是一直有//效,而只是對下一個輸出數(shù)據(jù)有效,,例10-2:給出以下程序的運行結果。#includevoidmain(){intx=123;doubley=-3.456789;cout<<"x=";cout.width(10);//設置輸出下一個數(shù)據(jù)的域寬為10cout<- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- C程序設計 程序設計 電子 教案 10 章流類庫 輸入輸出
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.3dchina-expo.com/p-11498688.html