![第9章 文件與流_第1頁](http://file4.renrendoc.com/view/95dad0db72f5feb8d1cfacea7ecc1a3a/95dad0db72f5feb8d1cfacea7ecc1a3a1.gif)
![第9章 文件與流_第2頁](http://file4.renrendoc.com/view/95dad0db72f5feb8d1cfacea7ecc1a3a/95dad0db72f5feb8d1cfacea7ecc1a3a2.gif)
![第9章 文件與流_第3頁](http://file4.renrendoc.com/view/95dad0db72f5feb8d1cfacea7ecc1a3a/95dad0db72f5feb8d1cfacea7ecc1a3a3.gif)
![第9章 文件與流_第4頁](http://file4.renrendoc.com/view/95dad0db72f5feb8d1cfacea7ecc1a3a/95dad0db72f5feb8d1cfacea7ecc1a3a4.gif)
![第9章 文件與流_第5頁](http://file4.renrendoc.com/view/95dad0db72f5feb8d1cfacea7ecc1a3a/95dad0db72f5feb8d1cfacea7ecc1a3a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第9章文件與流C++具有一個(gè)功能強(qiáng)大的I/O類繼承體系結(jié)構(gòu)用于處理數(shù)據(jù)的輸入/輸出問題,該體系結(jié)構(gòu)不僅提供了對系統(tǒng)內(nèi)置數(shù)據(jù)類型的輸入/輸出操作,而且允許程序員通過重載擴(kuò)展其功能以實(shí)現(xiàn)自定義數(shù)據(jù)類型的輸入和輸出操作。本章主要介紹C++流的基本結(jié)構(gòu),數(shù)據(jù)的輸入輸出及其格式化問題,同時(shí)還介紹了C++文件的編程技術(shù)。19.1C++I/O流及流類庫1、流的概念所謂流,是指數(shù)據(jù)的有向流動(dòng),即數(shù)據(jù)從一個(gè)設(shè)備流向另一個(gè)設(shè)備。流實(shí)際上是一種對象,它在使用前被建立,使用后被刪除。數(shù)據(jù)的輸入/輸出操作就是從流中提取數(shù)據(jù)或者向流中添加數(shù)據(jù)。通常把從流中提取數(shù)據(jù)的操作稱為析取,即讀操作;向流中添加數(shù)據(jù)的操作稱為插入操作,即寫操作。29.1C++I/O流及流類庫2、C++I/O流類的繼承結(jié)構(gòu)C++建立了一個(gè)十分龐大的流類庫來實(shí)現(xiàn)數(shù)據(jù)的輸入/輸出操作,其中的每個(gè)流類實(shí)現(xiàn)不同的功能,這些類通過繼承組合在一起。39.1C++I/O流及流類庫3、C++主要的流類簡介streambuf主要作為其他類的支持,定義了對緩沖區(qū)的通用操作,如設(shè)置緩沖區(qū),從緩沖區(qū)中讀取數(shù)據(jù),或向緩沖區(qū)寫入數(shù)據(jù)等操作filebuf類使用文件來保存緩沖區(qū)中的字符序列。它定義了文件讀、寫、打開、關(guān)閉等常用操作。ios是所有流類的基類,提供對流狀態(tài)進(jìn)行設(shè)置的主要功能。如文件數(shù)據(jù)的格式碼設(shè)置與取消,關(guān)鏈文件緩沖區(qū)借以實(shí)現(xiàn)數(shù)據(jù)讀寫等。49.1C++I/O流及流類庫istream是輸入流類,實(shí)現(xiàn)數(shù)據(jù)輸入的功能;ostream是輸出流類,實(shí)現(xiàn)數(shù)據(jù)輸出的功能;iostream是istream和ostream的派生類,它繼承了istream類和ostream類的行為,支持?jǐn)?shù)據(jù)輸入、輸出的雙向操作,在程序中常通過它來實(shí)現(xiàn)數(shù)據(jù)的輸入與輸出功能。fstreambase從ios派生,提供了文件操作的許多功能,作為其他文件操作類的公共基類。ifstream類用來實(shí)現(xiàn)文件讀取操作,ofstream類用來實(shí)現(xiàn)文件寫入操作。fstream繼承了fstreambase和iostream類的功能,實(shí)現(xiàn)了文件讀/寫的雙向操作。59.1C++I/O流及流類庫4、C++預(yù)定義的輸入/輸出流對象為了便于程序數(shù)據(jù)的輸入/輸出,C++預(yù)定義了幾個(gè)標(biāo)準(zhǔn)輸入/輸出流對象。在程序中可以直接引用它們來輸入/輸出數(shù)據(jù)。如下表所示
對象定義說明ostreamcout;cout與標(biāo)準(zhǔn)輸出設(shè)備相關(guān)聯(lián)ostreamcerr;cerr與標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備相關(guān)聯(lián)(非緩沖方式)ostreamclog;clog與標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備相關(guān)聯(lián)(緩沖方式)istreamcin;與標(biāo)準(zhǔn)輸入設(shè)備相關(guān)聯(lián)69.2使用I/O成員函數(shù)1、用Cin輸入數(shù)據(jù)的問題用cin輸入字符串?dāng)?shù)據(jù)時(shí),如果字符串中含有空白就不能完整輸入。因?yàn)橛龅娇瞻鬃址麜r(shí),cin就認(rèn)為字符串結(jié)束了?!纠?-1】用cin輸入字符串的問題。//Eg9-1.cpp#include<iostream>usingnamespacestd;voidmain(){chara[50];cout<<"pleaseinputastring:";cin>>a;cout<<a<<endl;}若a的內(nèi)容是:thisisastring!就難以輸入啦!這樣的數(shù)據(jù)應(yīng)用輸入流類的成員函數(shù)輸入79.2.1istream流中的常用成員函數(shù)1、istream類定義了許多用于從流中提取數(shù)據(jù)和操作文件的成員函數(shù),如下所示classistream:virtualpublicios{public:istream&operator>>(double&); //具有許多operator>>重載成員函數(shù)......intget();istream&get(char*,int,char='\n');istream&get(char&);istream&getline(char*,int,char='\n');istream&read(char*,int);istream&ignore(int=1,int=EOF);intpeek();istream&putback(char);......};istream或istream.h頭文件中找到此class的聲明!89.2.1istream流中的常用成員函數(shù)2、幾個(gè)常用的輸入流成員函數(shù)(1)intget()(2)istream&
get(char*c,intn,char='\n')(3)istream&read(char*c,intn);(4)istream&ignore(int=1,int=EOF)(5)istream&getline(char*c,intn,char='\n');9【例9-2】用函數(shù)get和getline讀取數(shù)據(jù)。#include<iostream>usingnamespacestd;voidmain(){charc,chara[50],chars1[100];cout<<"useget()inputchar:";while((c=cin.get())!='\n') //L1cout<<c;cout<<endl;cout<<"useget(a,10)inputchar:";cin.get(a,10); //L2cout<<a<<endl;cin.ignore(1); //L3cout<<"usegetline(s1,10)inputchar:";cin.getline(s1,10); //L4cout<<s1<<endl;}
10分析例9-2的程序執(zhí)行情況下面是程序執(zhí)行時(shí)的一組輸入數(shù)據(jù)和輸出結(jié)果:useget()inputchar:abcdabcduseget(a,10)inputchar:1234567812345678usegetline(s1,10)inputchar:thisisastrthisisa此輸入數(shù)據(jù)將建立如圖所示的輸入流119.2.2ostream流中的常用成員函數(shù)1、ostream類提供了許多用于數(shù)據(jù)輸出的成員函數(shù),并通過流的輸出運(yùn)算符<<重載,實(shí)現(xiàn)了對內(nèi)置數(shù)據(jù)類型的輸出功能。在ostream類中的聲明原型如下:class_CRTIMPostream:virtualpublicios{public:ostream&operator<<(…);ostream&flush();ostream&operator<<(long);ostream&put(char);ostream&write(constchar*,int);ostream&seekp(streampos);......};129.2.2ostream流中的常用成員函數(shù)2、幾個(gè)常用輸出流類的成員函數(shù)ostream&put(charc);ostream&write(constchar*c,intn);flush13【例9-3】用get讀取數(shù)據(jù),用put及write
輸出數(shù)據(jù)的例子。//Eg9-3.cpp#include<iostream>usingnamespacestd;voidmain(){charc;chara[50]="thisisastring...";cout<<"useget()inputchar:";while((c=cin.get())!='\n') //L1用get讀取字符,遇回車鍵結(jié)束cout.put(c); //L2將c中的字符輸出cout.put('\n'); //L3輸出一個(gè)回車換行符cout.put('t').put('h').put('i').put('s').put('\n');//L4輸出thiscout.write(a,sizeof(a)-1).put('\n');//L5write一次輸出多個(gè)字符cout<<"look"<<"\there!"<<endl;}149.2.4ios類提供的格式控制ios是C++所有流類的基類,它包含了C++流的主要特性。1.ios中的格式化標(biāo)志ios::skipws 跳過輸入流中的空白字符ios::left 輸出數(shù)據(jù)按左對齊,如[12]ios::right 輸出數(shù)據(jù)按右對齊,如[12]ios::dec 按十進(jìn)制數(shù)據(jù)輸出ios::oct 按八進(jìn)制數(shù)據(jù)輸出ios::hex 按十六進(jìn)制數(shù)據(jù)輸出ios::showbase 在輸出數(shù)據(jù)前面顯示基數(shù)(八進(jìn)制是0,十六進(jìn)制是0x)ios::showpoint 浮點(diǎn)數(shù)輸出帶小數(shù)點(diǎn)ios::uppercase 用大寫字母輸出十六進(jìn)制數(shù)(即ABCDEF,默認(rèn)是小寫)ios::showpos 在正數(shù)前加“+”ios::scientific 用科學(xué)計(jì)數(shù)法輸出浮點(diǎn)數(shù),如[2.122E2]ios::fixed 用定點(diǎn)數(shù)形式輸出浮點(diǎn)數(shù),如[212.2]ios::unitbuf 完成后立即刷新緩沖區(qū)159.2.4ios類提供的格式控制2.ios中的格式化成員函數(shù)setf(flags) 設(shè)置指定的格式化標(biāo)志flags,unsetf(flags) 取消指定的格式化標(biāo)志flags,setf(flags,filed) 先清除、然后設(shè)置標(biāo)志flags可以是上面在1中列舉的格式化標(biāo)志符169.2.4ios類提供的格式控制3.設(shè)置域?qū)挕⒕?、填充字符的成員函數(shù)ch=fill() 返回填充字符(默認(rèn)為空格),ch是一個(gè)字符變量fill(ch) 設(shè)置填充字符,ch是要設(shè)置為填充的字符p=precision() 獲取當(dāng)前浮點(diǎn)數(shù)的精度,p是一個(gè)整型變量precision(p) 設(shè)置精度,p是一個(gè)整數(shù),代表要設(shè)置的數(shù)字位數(shù)w=width() 獲取當(dāng)前字段寬度(字符個(gè)數(shù)),w是整型變量width(w) 設(shè)置當(dāng)前字段寬度,w是代表設(shè)置輸出寬度的整數(shù)17【例9-4】用ios成員函數(shù)及格式化標(biāo)志設(shè)置輸出數(shù)據(jù)的格式。//Eg9-4.cpp#include<iostream>usingnamespacestd;voidmain(){charc[30]="thisisstring";doubled=-1234.8976;cout.width(30);cout.fill('*');cout.setf(ios::left);cout<<c<<"----L1"<<endl;
cout.width(30);cout.setf(ios::right);cout<<c<<"----L2"<<endl;18cout.setf(ios::dec|ios::showbase|ios::showpoint);cout.width(30);cout<<d<<"----L3"<<"\n";cout.setf(ios::showpoint);cout.precision(10);cout.width(30);cout<<d<<"----L4"<<"\n";cout.width(30);cout.setf(ios::oct,ios::basefield);cout<<100<<"----L5"<<"\n";}19例9-4程序運(yùn)行結(jié)果如下thisisstring****************----L1****************thisisstring----L2**********************-1234.90----L3******************-1234.897600----L4**************************0144----L5209.2.5利用操縱符格式化數(shù)據(jù)1、C++流類庫中的每個(gè)流對象都維護(hù)著一個(gè)格式狀態(tài),它控制著數(shù)據(jù)格式化操作的細(xì)節(jié)。如輸出數(shù)據(jù)的基數(shù)(默認(rèn)為十進(jìn)制數(shù)據(jù))、對齊方式、精度等。2、C++還提供了一組可以對數(shù)據(jù)進(jìn)行格式化的預(yù)定義操縱符(也稱操縱算子)219.2.5利用操縱符格式化數(shù)據(jù)3、C++流類中的操縱符showbase(noshowbase) 顯示(不顯示)數(shù)值的基數(shù)前綴showpoint(noshowpoint) 顯示小數(shù)點(diǎn)(存在小數(shù)部分時(shí)才顯示小數(shù)點(diǎn))showpos(noshowpos) 在非負(fù)數(shù)中顯示(不顯示)+skipws(noskips) 輸入數(shù)據(jù)時(shí),跳過(不跳過)空白字符uppercase(nouppercase) 十六進(jìn)制顯示為0X(0x),科學(xué)計(jì)數(shù)法顯示E(e)dec/oct/hex 十進(jìn)制/八進(jìn)制/十六進(jìn)制left/right 設(shè)置數(shù)據(jù)輸出對齊方式為:左/右對齊fixed 以小數(shù)形式顯示浮點(diǎn)數(shù)scientitific 用科學(xué)計(jì)數(shù)法顯示浮點(diǎn)數(shù)flush 刷新輸出緩沖區(qū)ends 插入空白字符,然后刷新ostream緩沖區(qū)endl 插入換行字符,然后刷新ostream緩沖區(qū)ws 跳過開始的空白229.2.5利用操縱符格式化數(shù)據(jù)3、C++流類中的操縱符showbase(noshowbase) 顯示(不顯示)數(shù)值的基數(shù)前綴showpoint(noshowpoint) 顯示小數(shù)點(diǎn)(存在小數(shù)部分時(shí)才顯示小數(shù)點(diǎn))showpos(noshowpos) 在非負(fù)數(shù)中顯示(不顯示)+skipws(noskips) 輸入數(shù)據(jù)時(shí),跳過(不跳過)空白字符uppercase(nouppercase) 十六進(jìn)制顯示為0X(0x),科學(xué)計(jì)數(shù)法顯示E(e)dec/oct/hex 十進(jìn)制/八進(jìn)制/十六進(jìn)制left/right 設(shè)置數(shù)據(jù)輸出對齊方式為:左/右對齊fixed 以小數(shù)形式顯示浮點(diǎn)數(shù)scientitific 用科學(xué)計(jì)數(shù)法顯示浮點(diǎn)數(shù)flush 刷新輸出緩沖區(qū)ends 插入空白字符,然后刷新ostream緩沖區(qū)endl 插入換行字符,然后刷新ostream緩沖區(qū)ws 跳過開始的空白239.2.5利用操縱符格式化數(shù)據(jù)4、頭文件<iomanip>或<iomanip.h>中的操縱符函數(shù)setfill(ch) 設(shè)置ch為填充字符setprecision(n) 設(shè)置精度為n位有效數(shù)字setw(w) 設(shè)置數(shù)據(jù)的輸出寬度為w個(gè)字符setbase(b) 基數(shù)設(shè)置為b(b=8,10,16)進(jìn)制
24【例9-5】修改例9-4,用操縱符格式化輸出數(shù)據(jù),實(shí)現(xiàn)同樣的功能。//Eg9-5.cpp#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){charc[30]="thisisstring";doubled=-1234.8976;cout<<setw(30)<<left<<setfill('*')<<c<<"----L1"<<endl;cout<<setw(30)<<right<<setfill('*')<<c<<"----L2"<<endl;cout<<dec<<showbase<<showpoint<<setw(30)<<d<<"----L3"<<"\n";cout<<setw(30)<<showpoint<<setprecision(10)<<d<<"----L4"<<"\n";cout<<setw(30)<<setbase(8)<<100<<"----L5"<<"\n";}259.3文件操作1、文件的概念文件是存儲(chǔ)在存儲(chǔ)介質(zhì)上(如磁盤、磁帶、光盤)的數(shù)據(jù)集合。2、文件的類型文本文件文本文件在磁盤上存放相關(guān)字符的ASCII碼,所以又稱為ASCII文件。二進(jìn)制文件二進(jìn)制文件在磁盤上存儲(chǔ)相關(guān)數(shù)據(jù)的二進(jìn)制編碼,它是把內(nèi)存中的數(shù)據(jù),按其在內(nèi)存中的存儲(chǔ)形式原樣寫到磁盤上而形成的文件。269.3.1文件與流1、流與文件C++將文件看成是一個(gè)個(gè)字符在磁盤上的有序集合,用流來實(shí)現(xiàn)文件的讀寫操作。2、與文件相關(guān)的流ifstreamofstreamfstream279.3.1文件與流3、用流操作文件的過程,須經(jīng)過以下4個(gè)步驟(1)建立文件流ifstreamiFile;ofstreamoFile;fstreamioFile;(2)打開文件
voidopen(constchar*filename,intmode,intaccess);(3)訪問文件(4)關(guān)閉文件iFile.close();oFile.close();289.3.1文件與流打開文件的方式文件打開方式說明ios::in以輸入方式打開文件,即讀文件(ifstream類對象默認(rèn)方式)ios::out以輸出方式打開文件,即寫文件(ofstream類對象默認(rèn)方式)ios::app以添加方式打開文件,新增加的內(nèi)容添加在文件尾ios::ate以添加方式打開文件,新增加的內(nèi)容添加在文件尾,但下次添加時(shí)則添加在當(dāng)前位置ios::trunc如文件存在就打開并清除其內(nèi)容,如不存在就建立新文件ios::binary以二進(jìn)制方式打開文件(默認(rèn)為文本文件)ios::nocreate打開已有文件,若文件不存在,則打開失敗ios::noreplace若打開的文件已經(jīng)存在,則打開失敗299.3.1文件與流文件訪問模式filebuf::openport 共享方式filebuf::sh_none 獨(dú)占方式,不允許共享filebuf::sh_read 允許讀共享filebuf::sh_write 允許寫共享309.3.1文件與流【例9-6】假設(shè)有學(xué)生的chinese、math、computer成績表如下:張三,76,98,67;李四,89,70,60;王十,91,88,77;黃二,62,81,75;劉六,90,78,67用fstream文件流在目錄C:\dk下建立a.dat文件,并將上述學(xué)生成績寫入文件中。然后以二進(jìn)制方式打開建立的文件,讀出文件中的數(shù)據(jù),計(jì)算每個(gè)學(xué)生的總成績并將它顯示在屏幕上。31//Eg9-6.cpp#include<iostream>#include<fstream>usingnamespacestd;voidmain(){fstreamioFile; ioFile.open("C:\\dk\\a.dat",ios::out); ioFile<<"張三"<<""<<76<<""<<98<<""<<67<<endl; //L3ioFile<<"李四"<<""<<89<<""<<70<<""<<60<<endl;ioFile<<"王十"<<""<<91<<""<<88<<""<<77<<endl;ioFile<<"黃二"<<""<<62<<""<<81<<""<<75<<endl;ioFile<<"劉六"<<""<<90<<""<<78<<""<<67<<endl;ioFile.close(); 9.3.1文件與流32ioFile.open("C:\\dk\\a.dat",ios::in|ios::binary); //L5charname[10];intchinese,math,computer;cout<<"姓名\t"<<"英語\t"<<"數(shù)學(xué)\t"<<"計(jì)算機(jī)\t"<<"總分"<<endl;
ioFile>>name; while(!ioFile.eof()) {
ioFile>>chinese>>math>>computer; cout<<name<<"\t"<<chinese<<"\t"<<math<<"\t"<<computer<<"\t"<<chinese+math+computer<<endl;
ioFile>>name;}ioFile.close(); }339.3.2二進(jìn)制文件1、二進(jìn)制文件與文本文件的區(qū)別在讀文件時(shí),它們判定文件結(jié)束標(biāo)志的方法存在區(qū)別。在讀文本文件的過程中,當(dāng)get
之類的成員函數(shù)遇到文件結(jié)束符時(shí),它返回常量EOF作為文件結(jié)束標(biāo)志,但二進(jìn)制文件不能用EOF作為文件結(jié)束的判定值。因?yàn)镋OF的值是1,若文件中某個(gè)字節(jié)的值為1,就會(huì)被誤認(rèn)為是文件結(jié)束符。C++提供了一個(gè)成員函數(shù)eof來解決這個(gè)問題,它的用法如下:intxx::eof()其中,xx代表輸入流對象,到達(dá)文件末尾時(shí),返回一個(gè)非0值,否則返回0。
342、二進(jìn)制文件操作方法用get和put按字節(jié)方式讀寫文件數(shù)read和write
按數(shù)據(jù)塊的方式讀寫文件數(shù)據(jù)【例9-7】用二進(jìn)制方式建立一個(gè)磁盤文件,將ASCII編碼為0~90之間的字符寫入到文件C:\dk\a.dat中,然后用二進(jìn)制文件方式讀出并在屏幕上顯示a.dat的內(nèi)容。//Eg9-7.cpp#include<iostream>#include<fstream>usingnamespacestd;35voidmain(){charch;ofstreamout("C:\\dk\\a.dat",ios::out|ios::binary); //L1for(inti=0;i<90;i++){if(!(i%30)) out.put('\n'); out.put(char(i)); out.put(''); }out.close(); ifstreamin("C:\\dk\\a.dat",ios::in|ios::binary); //L6while(in.get(ch)) cout<<ch; in.close(); }36【例9-8】設(shè)計(jì)一個(gè)person類,從鍵盤輸入每個(gè)人的姓名、身份證號、年齡、地址等數(shù)據(jù),并將每個(gè)人的信息保存在目錄C:\dk下的二進(jìn)制文件person.dat中,然后將文件中的個(gè)人信息讀出來,保存在vector類型的向量中并顯示出來。37//Eg9-8.cpp#include<iostream>#include<vector>#include<string>#include<fstream>usingnamespacestd;classPerson{private:charname[20];charid[18];intage;charaddr[20];public:Person(){}Person(char*n,char*PerId,intAge,char*Address){strcpy(name,n);strcpy(id,PerId);strcpy(addr,Address);age=Age;}voiddisplay(){cout<<name<<"\t"<<id<<"\t"<<age<<"\t"<<addr<<endl;}};38voidmain(){vector<Person>p;vector<Person>::iteratorpos;charch;ofstreamout("C:\\dk\\person.dat",ios::out|ios::app|ios::binary); charName[20],ID[18],Addr[20];intAge;cout<<"--------輸入個(gè)人檔案--------"<<endl<<endl;do{ cout<<"姓名:";cin>>Name;cout<<"身份證號:";cin>>ID;cout<<"年齡:";cin>>Age;cout<<"地址:";cin>>Addr;Persons1(Name,ID,Age,Addr);out.write((char*)&s1,sizeof(s1)); cout<<"Enteranotherperson(y/n)?";cin>>ch;}while(ch=='y');out.close();39ifstreamin("C:\\dk\\person.dat",ios::in|ios::binary); Persons1;in.read((char*)&s1,sizeof(s1));while(!in.eof()){ p.push_back(s1); in.read((char*)&s1,sizeof(s1)); }cout<<"\n---------從文件中讀出的數(shù)據(jù)--------"<<endl<<endl;pos=p.begin();for(pos=p.begin();pos!=p.end();pos++) (*pos).display(); }409.3.3隨機(jī)文件1、順序文件與隨機(jī)文件順序訪問是指按照從前到后的順序依次對文件進(jìn)行讀寫操作,有些存儲(chǔ)設(shè)備只支持順序訪問,如磁帶。隨機(jī)訪問也稱為直接訪問,可以按任意次序?qū)ξ募M(jìn)行讀寫操作2、隨機(jī)文件訪問方式對于隨機(jī)文件,C++流類提供了一個(gè)操作它的的文件
指針,該指針可在文件中移動(dòng),將它指向要讀寫的字節(jié)位置,然后從該位置讀取或?qū)懭胫付ㄗ止?jié)數(shù)的數(shù)據(jù)塊,這樣就實(shí)現(xiàn)了文件數(shù)據(jù)的隨機(jī)訪問。419.3.3隨機(jī)文件3、定位輸入文件讀指針的成員函數(shù)istream&seekg(longpos); istream&seekg(longoff,dir); longtellg();4、定位輸出文件寫指針的成員函數(shù)ostream&seekp(longpos);ostream&seekp(longoff,dir);longtellp();42【例9-9】某雇員類Employee有編號、姓名、年齡、工資等數(shù)據(jù)成員。設(shè)計(jì)一個(gè)隨機(jī)文件保存各雇員的各項(xiàng)數(shù)據(jù)。//Eg9-9.cpp#include<iostream>#include<string>#include<fstream>usingnamespacestd;classEmployee{private:intnumber,age;charname[20];doublesal;public:Employee(){}Employee(intnum,char*Name,intAge,doubleSalary){number=num;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修井作業(yè)建設(shè)項(xiàng)目可行性研究報(bào)告
- 中央空調(diào)報(bào)價(jià)合同范本
- 入職前培訓(xùn)協(xié)議合同范本
- 上門遛狗合同范本
- 公司英文合同范本
- 2025年度裝配式集成建筑還建房買賣合同范本
- 關(guān)于鋼材合伙合同范本
- 修田間路合同范本
- 培養(yǎng)專家型校長的關(guān)鍵舉措
- 包餐合同范例
- 義務(wù)教育物理課程標(biāo)準(zhǔn)(2022年版)測試題文本版(附答案)
- 人工智能在地理信息系統(tǒng)中的應(yīng)用
- 第7章-無人機(jī)法律法規(guī)
- 藥劑科基本藥物處方用藥狀況點(diǎn)評工作表
- 拆遷征收代理服務(wù)投標(biāo)方案
- 完形療法概述
- 說課的技巧和方法專題講座
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗(yàn)收評定標(biāo)準(zhǔn)
- 監(jiān)理質(zhì)量管理講義監(jiān)理工作的基本知識
- 煙花爆竹考試真題模擬匯編(共758題)
- 四年級數(shù)學(xué)上冊口算天天練4
評論
0/150
提交評論