第10章C的輸入輸出流_第1頁
第10章C的輸入輸出流_第2頁
第10章C的輸入輸出流_第3頁
第10章C的輸入輸出流_第4頁
第10章C的輸入輸出流_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、c+程序設計程序設計 第第10章章c+的輸入輸出流的輸入輸出流 c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流2流與流對象流與流對象標準輸出流標準輸出流標準輸入流標準輸入流輸入輸出的格式化輸入輸出的格式化 文件處理文件處理字符串流字符串流c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流31 1、流的引入、流的引入 scanf(%d,&a); cina; printf(%d,a); couta;2 2、流的基本概念、流的基本概念 流:數(shù)據(jù)從一個對象流動到另一個對象,這種 流動抽象為流。 流的操作:建立流、刪除流、提?。ㄗx操作/輸 入)、插入(寫操作/輸出)。c+c+程序設計程序設計

2、c c的輸入輸出流的輸入輸出流43 3、c+c+流的繼承結構流的繼承結構c+的輸入輸出操作由它所提供的一個的輸入輸出操作由它所提供的一個i/o流類的類庫流類的類庫來實現(xiàn)來實現(xiàn),該類庫是用繼承的方法建立起來的,主要有該類庫是用繼承的方法建立起來的,主要有streambuf和和ios兩個平行的基類。兩個平行的基類。 streambuf類主要負類主要負責緩沖區(qū)的處理,同時也為責緩沖區(qū)的處理,同時也為ios基類提供緩沖支持。基類提供緩沖支持。ios類是一個抽象基類,主要提供類是一個抽象基類,主要提供i/o所需的公共操作,其所需的公共操作,其層次結構圖如圖層次結構圖如圖10-1。c+c+程序設計程序設計

3、c c的輸入輸出流的輸入輸出流5標準流是標準流是c+預定義的對象,主要提供內(nèi)存與外部設備預定義的對象,主要提供內(nèi)存與外部設備進行交互的功能,包括數(shù)據(jù)提取、插入、解釋及格式處進行交互的功能,包括數(shù)據(jù)提取、插入、解釋及格式處理,同時為這種數(shù)據(jù)交換提供必要的緩沖支持,其關系理,同時為這種數(shù)據(jù)交換提供必要的緩沖支持,其關系如圖如圖 10-2。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流6系統(tǒng)預定義了系統(tǒng)預定義了4個流類對象,供用戶使用,見表個流類對象,供用戶使用,見表10-1。表表10-1標準輸入輸出對象標準輸入輸出對象對象名對象名所屬類所屬類對應設備對應設備默認的含義默認的含義說明說明ci

4、nistream鍵盤鍵盤標準輸入標準輸入可重定向可重定向coutostream屏幕屏幕標準輸出標準輸出可重定向可重定向cerrostream屏幕屏幕標準錯誤標準錯誤不帶緩沖不帶緩沖clogostream打印機打印機標準錯誤標準錯誤帶緩沖帶緩沖c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流7 【例例10.1】計算一個數(shù)的平方根。計算一個數(shù)的平方根。#include #include using namespace std;int main() double x; coutx;/cin的用法的用法 if(x0) cerrx; clogsquare root is: sqrt(x)endl;

5、/ clog的用法的用法 return 0;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流81、使用成員函數(shù)put( )輸出一個字符格式為:cout.put(char c)或cout.out(const char ch );2、使用成員函數(shù)write( )輸出字符串格式為:cout.write(const char *str,int n);說明:說明:這些成員函數(shù)既可用于文本流,也可用于二進制流,尤其適用于二進制流。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流9 【例例10.2】put( )函數(shù)使用函數(shù)使用void main() char ch1=a,ch2=b; couta

6、,bendl; cout.put(ch1).put(,).put(ch2).put(n); cout.put(a).put(,).put(b).put(n);結果a,ba,ba,bc+c+程序設計程序設計c c的輸入輸出流的輸入輸出流10【例例10.3】write( )函數(shù)使用函數(shù)使用void main() char *str1=1234567890;/字符指針 char str2=;/字符數(shù)組 cout.write(str1,10).put(n); /輸出全部字符 cout.write(str2,strlen(str2).put(n); /輸出前6個字符 cout.write(abcdefg

7、hijk,6)endl;結果:結果:abcdefc+c+程序設計程序設計c c的輸入輸出流的輸入輸出流111、使用成員函數(shù)get( )獲取一個字符格式為:cout.get(char &ch)或char ch=cout.get( );注意:注意:get( )在獲取字符時不忽略空白字符,即輸入流中的空白字符也會被當作有效字符讀入。2、使用成員函數(shù)getline( )獲取多個字符格式為: cout.getline(char *buf,int size,char delim=n);cgetline( )最多可讀取limit-1個字符;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流121. 從輸

8、入流中讀取limit-1個字符后;2. 從輸入流中讀取換行符或其他終止符后;3. 從輸出流中讀取到文件或輸入流結束符后;4. getline( )通常用來讀取一行字符:3.getline( )3.getline( )函數(shù)結束操作的條件:函數(shù)結束操作的條件:c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流13 【例例10.4】get( )函數(shù)使用函數(shù)使用void main() int cnt=0; char ch; coutinput a sentence:n; while (ch=cin.get()!=eof) /按ctrl+z結束輸入 coutch;/輸出到屏幕上 cnt+;/字符計數(shù)

9、 coutcntendl;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流14 【例例10.4】get( )函數(shù)使用函數(shù)使用執(zhí)行結果:input a sentence:i love you everyonez(注:此行是用戶輸入的)i love you everyonez(注:此行是程序顯示在屏幕上的)19程序中的eof(end of file)是iostream中預定義的符號常量,意思是文件結尾。編程時往往把get( )與put( )結合起來使用。 c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流15 【例例10.5】用用getline( )函數(shù)讀入一行字符。函數(shù)讀入一行字符。v

10、oid main() char ch20; coutch; coutsentence1 is: chendl; cin.getline(ch,20,/);/讀19個字符或遇到/結束 coutsentence2 is: chendl; cin.getline(ch,20);/讀19個字符或遇到n結束 coutsentence3 is: chendl;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流16 【例例10.5】用用getline( )函數(shù)讀入一行字符。函數(shù)讀入一行字符。程序運行結果:input a sentence:i like c+/i study hard(注:此為用戶輸入)s

11、entence1 is: isentence2 is: like c+sentence3 is: i study hardc+c+程序設計程序設計c c的輸入輸出流的輸入輸出流17 一般可用兩種方式來實現(xiàn):一是使用格式控制符,二是使用流對象的成員函數(shù)。 1.設置標識字(1).標識常量標識常量ios類中用標識字來記錄當前流格式化狀態(tài),標識字的每一位用于記錄(或控制)一種格式,每種格式都定義了對應的枚舉常量,在編程時,可以使用標識常量或直接用對應十六進制值設置輸入輸出格式。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流18(2). iosios中控制格式的成員函數(shù)中控制格式的成員函數(shù)ios

12、類有6個公有成員函數(shù)可以直接操作該標識字,他們?yōu)?:long flags( ) const(函數(shù)返回流的格式標志),long setf (long lflags )(設置參數(shù)lflags指定的標識位,并返回更新前的標識字),long unsetf (long lflags )(清除流的格式標志),char fill (char cfill )(設置或讀取流的填充字符),int precision (int np )(設置或讀取流的浮點數(shù)顯示精度),int width( int nw)(設置或讀取流的輸出寬度)。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流1910.13 5.36 65

13、3.7 1234.24cout.fill(*);*10.13*5.36*653.7*1234.24【例例10.6】用用width控制輸出寬度??刂戚敵鰧挾?。void main( ) double a = 10.13,5.36,653.7,1234.24 ; for(int i=0;i4;i+) cout.width(10); cout ai n; c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流20特別說明特別說明 : 由于標識字的每一位都表示一種格式,格式位之間會有相互依賴或相互排斥的關系,比如:dec、hex及oct在同一時刻只能有一種起作用,所以為安全起見,在設置一個位前應該消除其

14、它有互斥的位??梢酝ㄟ^ios中的公有靜態(tài)符號常量來實現(xiàn) 。 例如:cout.setf(ios:oct,ios:basefield);即用ios:basefield先清除格式位,并設置為八進制輸出。如果要同時設置幾個不互斥的標識位,可用位運算符(“”)連接,如:cout.setf(ios:oct|ios:left);c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流21程序運行結果:output with fixed:+3.14output with scientific: 3.1429e+005【例例10.7】 浮點數(shù)輸出的格式化。浮點數(shù)輸出的格式化。void main() double

15、x=22.0/7;coutoutput with fixed:n;cin.setf(ios:fixed|ios:showpos); cout.precision(3); coutxendl;coutoutput with scientific:n; cin.setf(ios:scientific,ios:fixed|ios:showpos);cout.precision(5);coutx*1e5endl;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流222.格式控制符 用上述方式進行格式控制有時稍嫌麻煩, 下面引入控制符(操作算子),以簡化對io控制的編程。這些控制符在iostream

16、.h及iomanip.h中聲明。(1). iostream中的控制符(見后表中的控制符(見后表10-2)(2). iomanip中的控制符(見后表中的控制符(見后表10-3)c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流23表表10-2iostream中常用的控制符中常用的控制符控制符控制符含義含義輸入輸出輸入輸出endl輸出換行符并刷新流輸出換行符并刷新流oends輸出空字符輸出空字符oflush刷新流刷新流odec將數(shù)值轉化為十進制將數(shù)值轉化為十進制i/0hex將數(shù)值轉化為十六進制將數(shù)值轉化為十六進制i/0oct將數(shù)值轉化為八進制將數(shù)值轉化為八進制i/0ws跳過空白字符(用于輸入)

17、跳過空白字符(用于輸入)ic+c+程序設計程序設計c c的輸入輸出流的輸入輸出流24表表10-3iomanip中常用的控制符中常用的控制符控制符控制符作用作用輸入輸入/輸出輸出setiosflags(ios:lflags)設置設置lflags指定的標志位指定的標志位i/oresetiosflags(ios:lflags)清除清除lflags指定的標志位指定的標志位i/osetbase(int base)設置基數(shù),設置基數(shù),base=8、10、16i/osetfill(char n)把填充字符改成把填充字符改成n,作用同,作用同ios:fill()osetprecision(int n)把精度改

18、成把精度改成n,作用同,作用同ios:precision()osetw(int n)把域寬改成把域寬改成n,作用同,作用同ios:width()oc+c+程序設計程序設計c c的輸入輸出流的輸入輸出流25 【例例10.8】 用控制符實現(xiàn)不同基數(shù)形式的輸入輸出。用控制符實現(xiàn)不同基數(shù)形式的輸入輸出。#include void main() int a,b,c; coutdeca; couthexb; coutoctc; coutoutput with decimal:n; couta=a,b=b,c=“cendl;coutoutput with hexadecimal:n;couthexa=a,b

19、=b,c=cendl;coutoutput with octal:n;coutocta=a,b=b,c=cendl;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流26 【例例10.8】 用控制符實現(xiàn)不同基數(shù)形式的輸入輸出。用控制符實現(xiàn)不同基數(shù)形式的輸入輸出。我們將十進制的126分別用三種進制形式輸入,得到以下運行結果:input a with decimal:126input b with hexadecimal:7e(注:即十進制的126)input c with octal:176(注:即十進制的126)output with decimal: (用十進制形式輸出的126)a=12

20、6,b=126,c=126(結果都為126)output with hexadecimal:a=7e,b=7e,c=7eoutput with octal:a=176,b=176,c=176c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流27 【例例10.9】 整數(shù)的格式化輸出整數(shù)的格式化輸出#include #include void main() const int k=12345;coutsetw(10)setfill(#)setiosflags(ios:right)kendl;coutsetw(10)setbase(8)setfill(*)resetiosflags(ios:ri

21、ght)setiosflags(ios:left)kendl;運行結果:#1234530071*注:注:程序中setbase(8)相當于iostream中的控制符oct,其余類似。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流28 【例例10.10】 用控制符實現(xiàn)浮點數(shù)輸出的格式化用控制符實現(xiàn)浮點數(shù)輸出的格式化 #include #include void main() double x=22.0/7;coutoutput with fixed:n;coutsetiosflags(ios:fixed|ios:showpos);coutsetprecision(3);coutxendl;

22、coutoutput with scientific:n;coutresetiosflags(ios:fixed|ios:showpos);coutsetiosflags(ios:scientific);coutsetprecision(5);coutx*1e5和),二是用文件流的put( )、get( )、getline( )、read( )、write( )等成員函數(shù),來實現(xiàn)輸入輸出操作 。 下面看幾個例子。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流37【例例10.11】 用插入與提取符進行文本文件的讀寫操作。用插入與提取符進行文本文件的讀寫操作。#include #inclu

23、de #include using namespace std; void main() ofstream myoutfile;myoutfile.open(“xie.txt”);if(!myoutfile) coutxie.txt cant open !n;abort(); char ch=a; while(chz) myoutfilech) coutch; coutendl; myinfile.close();c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流38程序分析:程序分析:程序先把程序先把2626個大寫字母寫入文本文件個大寫字母寫入文本文件xie.txtxie.txt中,然中

24、,然后將該文件的內(nèi)容逐字符讀取到內(nèi)存中,之后送到顯示器上顯后將該文件的內(nèi)容逐字符讀取到內(nèi)存中,之后送到顯示器上顯示。其中示。其中myoutfile.open(“xie.txt”)myoutfile.open(“xie.txt”)并沒有指定打開方式,并沒有指定打開方式,c+c+規(guī)定:對規(guī)定:對ofstreamofstream默認為默認為ios:outios:out,ifstreamifstream默認為默認為ios:inios:in。但對。但對fstreamfstream就必須明確指出打開方式。就必須明確指出打開方式。 程序中還對打開文件成功與否進了判斷,這點很重要。如果程序中還對打開文件成功與

25、否進了判斷,這點很重要。如果文件打開失敗,自然不能往文件寫入數(shù)據(jù),否則會出現(xiàn)嚴重錯文件打開失敗,自然不能往文件寫入數(shù)據(jù),否則會出現(xiàn)嚴重錯 誤!程序中的誤!程序中的abort( )abort( )函數(shù)即為退出程序的函數(shù),該函數(shù)在頭文函數(shù)即為退出程序的函數(shù),該函數(shù)在頭文件件stdlib.hstdlib.h中說明。中說明。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流39【例例10.12】 用用put( )與與get( )函數(shù)進行文本文件的讀寫操作。函數(shù)進行文本文件的讀寫操作。#include #include #include #include using namespace std; v

26、oid main() fstream myoutfile,myinfile;myoutfile.open(xie.txt,ios:out); char str=example of file operation.; for(int i=0;i=strlen(str);i+) myoutfile.put(stri); myoutfile.close(); myinfile.open(xie.txt,ios:in); char ch; while(myinfile.get(ch)coutch;coutendl; myinfile.close();c+c+程序設計程序設計c c的輸入輸出流的輸入輸出

27、流40【例例10.13】 用用getline( )函數(shù)按行讀取文本文件的內(nèi)容。函數(shù)按行讀取文本文件的內(nèi)容。#include #include using namespace std;void browsefile(char *filename);void main() char fname60; coutfname; browsefile(fname); void browsefile(char *filename) ifstream infile(filename,ios:in); char s80; while(!infile.eof() infile.getline(s,80); cou

28、tsendl; infile.close();比較比較get()與與getlina()的區(qū)別。的區(qū)別。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流41【例例10.14】 復制文本文件。復制文本文件。#include #include using namespace std;int copyfile(char *srcfile,char *desfile);void main() char sfname60,dfname60; coutsfnamedfname; copyfile(sfname,dfname); int copyfile(char *srcfile,char *desf

29、ile) char ch;ifstream infile(srcfile,ios:in);ofstream outfile(desfile,ios:out); if(!infile) cerrsrcfile :file open error!n; return 0; if(!outfile) cerrdesfile :file open error!n; return 0; while(infile.get(ch) outfile.put(ch); cout.finish!.n; return 1;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流42 4. 4.二進制文件的讀寫二進制文件

30、的讀寫 對二進制文件的讀寫操作,主要用istream類的成員函數(shù)read和write來實現(xiàn)。函數(shù)的原型為:istream:read(char *buffer,int len); ostream:write(const char *buffer,int len);其中:字符指針buffer指向內(nèi)存的一段空間,len 是要讀或寫的字節(jié)數(shù)。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流43【例例10.15】 用用read和和write函數(shù)實現(xiàn)二進制文件的讀寫函數(shù)實現(xiàn)二進制文件的讀寫#include #include using namespace std; struct student in

31、t num; char name20; double score;student data4=101,xietin,90,102,hulin,88,103,weiwei,96,104,libai,99;void main() fstream myoutfile,myinfile; myoutfile.open(c:student.dat,ios:out|ios:binary); c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流44【例例10.15】 用用read和和write函數(shù)實現(xiàn)二進制文件的讀寫函數(shù)實現(xiàn)二進制文件的讀寫for(int i=0;i4;i+) myoutfile.writ

32、e(char*)&datai,sizeof(datai); myoutfile.close(); myinfile.open(c:student.dat,ios:in|ios:binary); student temp; for(i=0;i4;i+) myinfile.read(char*)&temp,sizeof(temp); ttemp.scoreendl; myinfile.close(); c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流45【例例10.15】 用用read和和write函數(shù)實現(xiàn)二進制文件的讀寫函數(shù)實現(xiàn)二進制文件的讀寫程

33、序分析:程序分析:先將4個學生的數(shù)據(jù)寫入到文件“c:student.dat”,然后依次讀出到結構體變量temp中,并送屏幕顯示。特別要注意:read和write函數(shù)的第1個參數(shù)都是字符指針,如果所要讀寫的數(shù)據(jù)類型與之不相符,需要進行強制轉換,如:(char*)&temp,以使形參與實參匹配。另外,本例中往文件中寫記錄時,也可以一次性把數(shù)組寫完,不必循環(huán),如下代碼:myoutfile.write(char*)&data0,sizeof(data);即:從第一個元素開始寫,寫入整個數(shù)組長度的字節(jié)數(shù)。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流465.5.隨機文件的讀寫隨機文件的讀寫 c+

34、的二進制文件是流式文件,系統(tǒng)利用文件指針記錄流的當前位置,允許對指針進行控制,使它按用戶的意圖移動到需要的位置,以便在該位置進行讀寫操作。c+是提供了定位文件指針的成員函數(shù),以實現(xiàn)對文件的隨機訪問,見表10-5。c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流47表表10-5文件流與文件指針相關的成員函數(shù)文件流與文件指針相關的成員函數(shù)成員函數(shù)成員函數(shù)作用作用gcount()返回最后一次輸入所讀取的字節(jié)數(shù)返回最后一次輸入所讀取的字節(jié)數(shù)tellg()返回輸入文件指針的當前位置返回輸入文件指針的當前位置seekg(流中的位置流中的位置)輸入文件的指針移到指定位置輸入文件的指針移到指定位置see

35、kg(偏移量,參照位置偏移量,參照位置)從從“參照位置參照位置”開始移到開始移到“偏移量偏移量”個字節(jié)個字節(jié)tellp()返回輸出文件指針的當前位置返回輸出文件指針的當前位置seekp(流中的位置流中的位置)輸出文件的指針移到指定位置輸出文件的指針移到指定位置seekp(偏移量,參照位置偏移量,參照位置)從從“參照位置參照位置”開始移到開始移到“偏移量偏移量”個字節(jié)個字節(jié)c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流48說明:說明:1)為了便于記憶,函數(shù)名中的)為了便于記憶,函數(shù)名中的g是是get的縮寫,的縮寫,p是是put的縮寫。的縮寫。對輸入輸出文件定位指針只有一個,但函數(shù)有兩組,

36、這兩組對輸入輸出文件定位指針只有一個,但函數(shù)有兩組,這兩組函數(shù)功能完全一樣;函數(shù)功能完全一樣;2)流中的位置及偏移量都是以字節(jié)數(shù)為單位的)流中的位置及偏移量都是以字節(jié)數(shù)為單位的long型;型;3)參照位置的取值及含義見圖)參照位置的取值及含義見圖103:begcurend圖10-3 流指針位置c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流49例如:假設例如:假設input是一個是一個istream類對象,則:類對象,則:input.seekg(40); / input流的指針移到第40個字節(jié)處input.seekg(20,ios:beg); /以流開始位置為基準,后移20個字節(jié)inpu

37、t.seekg(-10,ios:cur); /以流當前位置為基準,前移20個字節(jié)input.seekg(-10,ios:end); /以流結尾位置為基準,前移20個字節(jié)可以用可以用tellg()函數(shù)獲得當前指針的位置,它返回的是表示存儲地址的長整形函數(shù)獲得當前指針的位置,它返回的是表示存儲地址的長整形值,如:值,如:input.seekg(0,ios:beg); streampos pos= input. tellg();/返回流開始位置的指針值input.seekg(0,ios:end);pos= input. tellg();/返回流末尾位置的指針值c+c+程序設計程序設計c c的輸入輸出

38、流的輸入輸出流50【例例10.16】 二進制隨機文件的讀寫二進制隨機文件的讀寫 把5個學生的信息存入文件,從中分別讀出第1、3、5個學生的數(shù)據(jù)并顯示出來。將第3個學生的修改后保存到原來位置,最后再次讀出5個學生信息并顯示。 #include #include using namespace std;struct student int num; char name20; float score;c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流51【例例10.16】 二進制隨機文件的讀寫二進制隨機文件的讀寫 int main() int i; student stud5=1001,li,8

39、5,1002,fun,97.5,1004,wang,54, 1006,tan,76.5,1010,ling,96; fstream iofile(c:stud.dat,ios:in|ios:out|ios:binary|ios:trunc);if(!iofile)/如果打開文件錯誤 cerropen error!endl; /提示錯誤 abort();/終止程序 for(i=0;i5;i+)/依次寫入5條記錄 iofile.write(char *)&studi,sizeof(studi); student stud15; /用數(shù)組存放讀取的記錄c+c+程序設計程序設計c c的輸入輸出流的輸入

40、輸出流52【例例10.16】 二進制隨機文件的讀寫二進制隨機文件的讀寫 for(i=0;i5;i=i+2) iofile.seekg(i*sizeof(studi),ios:beg); /以起始為基準按要求偏移 iofile.read(char *)&stud1i/2,sizeof(stud1i); /讀取一條記錄并輸出 coutstud1i/2.num stud1i/2.name stud1i/2.scoreendl; coutendl; stud2.num=1012;/依次修改第3條記錄的內(nèi)容 strcpy(,wu); stud2.score=60; iofile.seekp(2*sizeof(stud0),ios:beg);/定位到第3條記錄iofile.write(char *)&stud2,sizeof(stud2);/寫入修改后的內(nèi)容iofile.seekg(0,ios:beg); /定位到第1條記錄c+c+程序設計程序設計c c的輸入輸出流的輸入輸出流53【例例10.16】 二進制隨機文件的讀寫二進制隨機文件的讀寫for(i=0;i5;i+)/依次讀取5條記錄并輸出 iofile.read(char *)&studi,s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論