C++的IO流類庫課件_第1頁
C++的IO流類庫課件_第2頁
C++的IO流類庫課件_第3頁
C++的IO流類庫課件_第4頁
C++的IO流類庫課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++的I/O流類庫§11.1流的概念

所謂“流”是指數(shù)據(jù)的流動,即指數(shù)據(jù)從一個位置流向另一個位置。DfasdfdshfsahflaDjf;dsafjfDsfjlhkldhffffffdsffffDsfhslkglkgdsafjlsg數(shù)據(jù)iosistreamistream-withassignstdiostreamostreamifstreamistrstreamfstreamostrstreamiostreamofstreamstrstreamostream-withassignI/O流類層次圖類名說明包含文件抽象流基類ios流基類,提供關(guān)于對流狀態(tài)進行設(shè)置的功能iostream.h輸入流類istream通用輸入流類和其他輸入流的基類,提供向流中插入數(shù)據(jù)的有關(guān)操作iostream.hifstream輸入文件流類,對文件進行讀操作fstream.histream-withassigncin的輸入流類iostream.histrstream輸入字符串流類strstrea.h類名說明包含文件輸出流類ostream通用輸出流類和其他輸出流的基類,提供向流中提取數(shù)據(jù)的有關(guān)操作iostream.hofstream輸出文件流類,對文件進行寫操作fstream.hostream-withassigncout、cerr和clog的輸出類iostream.hostrstream輸出字符串流類strstrea.hI/O流類iostream通用I/O流類和其他I/O流的基類iostream.hfstreamI/O文件流類fstream.hstrstreamI/O字符串流類strstrea.hstdiostream標準I/O文件的I/O類stdiostr.h§11.2屏幕輸出操作插入符(<<)put()write()§11.2屏幕輸出操作一、使用預(yù)定義的插入符#include<iostream.h>voidmain(){

intx=90;

cout<<“x=”<<x<<endl;}

cout是ostream-withassign類的對象,是標準輸出流?!?1.2屏幕輸出操作二、使用成員函數(shù)put()輸出一個字符cout.put(‘A’);//精確的輸出一個字符cout<<‘A’;//與上同,但是可受格式化參量的影響.§11.2屏幕輸出操作二、使用成員函數(shù)put()輸出一個字符①put()的參數(shù)可以是字符變量,也可以是字符常量②put()的函數(shù)返回值是ostream類的對象,所以可以串接多個put()函數(shù)?!?1.2屏幕輸出操作三、使用成員函數(shù)write()輸出一個字符串cout.write(constchar*str,intn)

其中,str用來存放一個字符串,或一個字符串常量;n用來指定輸出字符串中字符的個數(shù)?!?1.2屏幕輸出操作三、使用成員函數(shù)write()輸出一個字符串§11.3鍵盤輸入操作提取符(>>)get()getline()read()§11.3鍵盤輸入操作一、使用預(yù)定義的提取符#include<iostream.h>voidmain(){

intx,y;

cin>>x>>endl>>y;}

cin是istream-withassign類的對象,是標準輸入流。二、使用成員函數(shù)get()獲取一個字符EOF是定義在iostream.h中的符號常量?!?1.3鍵盤輸入操作比較:使用成員函數(shù)get()與使用提取符“>>”“>>”將跳過任何空白字符(空格、tab符、backspace符和回車符,而get()不跳過空白符。三、使用成員函數(shù)getline()獲取一行字符§11.3鍵盤輸入操作cin.getline(char*buf,intn,deline=‘\n’)

其中,buf用來存放一個字符串;n用來限定讀取的字符個數(shù)不能超過n-1個;第三個參數(shù)用來限定一行字符的結(jié)束標志,默認為‘\n’。三、使用成員函數(shù)getline()獲取一行字符§11.3鍵盤輸入操作結(jié)束該函數(shù)的條件:①讀取n-1個字符之后②讀取到換行符‘\n’之后③讀取到文件結(jié)束符或其他結(jié)束符之后例:統(tǒng)計從鍵盤上輸入每一行字符的個數(shù),并從中選出最長的行的字符個數(shù),統(tǒng)計共輸入多少行。

gcount()用來返回上一次函數(shù)getline()實際讀入的字符個數(shù),包括空白符。例:統(tǒng)計從鍵盤上輸入每一行字符的個數(shù),并從中選出最長的行的字符個數(shù),統(tǒng)計共輸入多少行。四、使用成員函數(shù)read()獲取若干行字符§11.3鍵盤輸入操作cin.read(char*buf,intsize)

其中,buf用來存放一個字符串;size用來指定讀取字符的個數(shù)??梢杂胓count()來統(tǒng)計上一次read()函數(shù)讀取的字符個數(shù)。四、使用成員函數(shù)read()獲取若干行字符§11.3鍵盤輸入操作程序結(jié)束:讀入79個字符;遇到<Ctrl+Z>§11.4格式化輸入和輸出一、使用流對象的成員函數(shù)進行格式輸出1.控制格式的標志位

235頁2.設(shè)置標志字的成員函數(shù)

234頁前5個標志字:ios類中的long型數(shù)據(jù)成員,用來記錄當(dāng)前被設(shè)置的格式狀態(tài)?!?1.4格式化輸入和輸出一、使用流對象的成員函數(shù)進行格式輸出

為了使用方便,在ios類中又定義了一些靜態(tài)存儲類對象,可以簡化對數(shù)制標志位、對齊標志位、實數(shù)表示標志位的操作:staticconstlongbasefield;//值為dec/ocx/hexstaticconstlongadjustfield;//值為left/right/internalstaticconstlongfloatfield;//值為scientific/fixed§11.4格式化輸入和輸出一、使用流對象的成員函數(shù)進行格式輸出§11.4格式化輸入和輸出一、使用流對象的成員函數(shù)進行格式輸出3.控制輸出格式的成員函數(shù)

234頁后6個§11.4格式化輸入和輸出

設(shè)置浮點小數(shù)的有效數(shù)字位數(shù)不含小數(shù)點所占的一位;設(shè)置科學(xué)計數(shù)法表示的小數(shù),其有效數(shù)字是指小數(shù)點后的有效位數(shù)。width()只負責(zé)當(dāng)前輸出,完成當(dāng)前輸出后,寬度為0?!?1.4格式化輸入和輸出二、使用控制符進行格式輸出

這些格式符在文件iomanip.h中被定義,可以直接插入到流中被插入符或提取符操作,而不必單獨調(diào)用。237頁§11.4格式化輸入和輸出有些控制符沒有的功能,還需要使用成員函數(shù)的方法來提供?!?1.5文件的輸入和輸出一、文件的打開和關(guān)閉操作1.打開文件方法一fstream<對象名>;//用open()代替構(gòu)造函數(shù)<對象名>.open(“<文件名>”,<方式>);

也可寫為:fstream<對象名>(“<文件名>”,<方式>);打開文件方式:244頁§11.5文件的輸入和輸出一、文件的打開和關(guān)閉操作1.打開文件方法一例如使用寫方式打開一個文本文件file.txt

fstreamoutfile;

outfile.open(“file.txt”,ios::out);例如使用讀方式打開一個二進制文件f1.txt

fstreamoutfile(“f1.txt”,ios::in|ios::binary);

§11.5文件的輸入和輸出一、文件的打開和關(guān)閉操作2.打開文件方法二ofstream

<對象名>;<對象名>.open(“<文件名>”);也可寫為:ofstream

<對象名>(“<文件名>”);

★打開某個寫文件格式:§11.5文件的輸入和輸出一、文件的打開和關(guān)閉操作2.打開文件方法二ifstream<對象名>;<對象名>.open(“<文件名>”);也可寫為:ifstream<對象名>(“<文件名>”);

★打開某個讀文件格式:§11.5文件的輸入和輸出一、文件的打開和關(guān)閉操作3.關(guān)閉文件<流對象名>.close();//用close()代替析構(gòu)函數(shù)其中,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論