C-與面向?qū)ο蟮某绦蛟O(shè)計(jì)-程序員聯(lián)合開發(fā)網(wǎng)課件_第1頁
C-與面向?qū)ο蟮某绦蛟O(shè)計(jì)-程序員聯(lián)合開發(fā)網(wǎng)課件_第2頁
C-與面向?qū)ο蟮某绦蛟O(shè)計(jì)-程序員聯(lián)合開發(fā)網(wǎng)課件_第3頁
C-與面向?qū)ο蟮某绦蛟O(shè)計(jì)-程序員聯(lián)合開發(fā)網(wǎng)課件_第4頁
C-與面向?qū)ο蟮某绦蛟O(shè)計(jì)-程序員聯(lián)合開發(fā)網(wǎng)課件_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、流類庫與輸入/輸出流類庫與輸入/輸出本講主要內(nèi)容I/O流的概念輸出流輸入流本講主要內(nèi)容I/O流的概念為什么要有C+流類庫C語言的輸入輸出系統(tǒng)不支持擁護(hù)自定義的對(duì)象或數(shù)據(jù)類型,如一定義:struct sample int i ; float f; char *ch;s1;不能用輸出函數(shù)來輸出以上結(jié)構(gòu)變量:printf(“%sample”,s1);I/O流的概念為什么要有C+流類庫C語言的輸入輸出系統(tǒng)不支持擁護(hù)自定義的為什么要有C+流類庫C+中,用戶自定義的對(duì)象很多。C+的類機(jī)制允許它可以建立一個(gè)可控制的輸入輸出系統(tǒng)。可以通過重載“”算符來解決以上的問題。I/O流的概念為什么要有C+流類庫C+中,

2、用戶自定義的對(duì)象很多。C+流類庫和流流在數(shù)據(jù)從一個(gè)對(duì)象流動(dòng)到另一個(gè)對(duì)象的過程中,無論是否對(duì)數(shù)據(jù)進(jìn)行緩沖或?qū)?shù)據(jù)進(jìn)行格式變換,這種流動(dòng)都被抽象為流.每個(gè)流都和一種與設(shè)備相聯(lián)系。與輸入設(shè)備(如鍵盤)聯(lián)系的流為輸入流;與輸出設(shè)備(如屏幕)聯(lián)系的流為輸出流。C+中預(yù)定義了標(biāo)準(zhǔn)輸入流cin、標(biāo)準(zhǔn)輸出流cout、非緩沖的出錯(cuò)流cerr和緩沖的出錯(cuò)流clog。I/O流的概念流類庫和流流I/O流的概念流類庫和流在缺省情況下,標(biāo)準(zhǔn)輸出設(shè)備是顯示終端,標(biāo)準(zhǔn)輸入設(shè)備是鍵盤。在任何情況下,標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備總是顯示終端。標(biāo)準(zhǔn)輸出設(shè)備可以不是顯示終端;但錯(cuò)誤信息總是在顯示屏幕上顯示。流在使用前要被建立,在使用后要被刪除,

3、使用特定的操作能夠從流中獲取數(shù)據(jù)(稱為提取操作),或向流中添加數(shù)據(jù)(稱為插入操作).I/O流的概念流類庫和流在缺省情況下,標(biāo)準(zhǔn)輸出設(shè)備是顯示終端,標(biāo)準(zhǔn)輸入設(shè)備輸出流輸出流對(duì)象是信息流動(dòng)的目標(biāo). ostream, ofstream和ostrstream是三個(gè)最重要的輸出流.ostream類通過派生類ostream_withassign支持預(yù)先定義的流對(duì)象cout 標(biāo)準(zhǔn)輸出cerr 標(biāo)準(zhǔn)錯(cuò)誤輸出,沒有緩沖,發(fā)給它的內(nèi)容立即輸出clog 類似于cerr,但有緩沖,緩沖區(qū)滿時(shí)被輸出.ofstream類支持磁盤文件輸出.ostrstream類支持輸出字符串。輸出流輸出流對(duì)象是信息流動(dòng)的目標(biāo). ostre

4、am, 文件 在磁盤上保存的信息是按文件的形式組織的,每個(gè)文件都對(duì)應(yīng)一個(gè)文件名,并且屬于某個(gè)物理盤或邏輯盤的目錄層次結(jié)構(gòu)中一個(gè)確定的目錄之下。 一個(gè)文件名由文件主名和擴(kuò)展名兩部分組成,它們之間用圓點(diǎn)(即小數(shù)點(diǎn))分開,擴(kuò)展名可以省略,當(dāng)省略時(shí)也要省略掉前面的圓點(diǎn)。文件主名是由用戶命名的一個(gè)有效的C+標(biāo)識(shí)符,為了同其他軟件系統(tǒng)兼容,一般讓文件主名為不超過8個(gè)有效字符的標(biāo)識(shí)符,同時(shí)為了便于記憶和使用,最好使文件主名的含義與所存的文件內(nèi)容相一致。輸出流文件 在磁盤上保存的信息是按文件的形式組織的 文件擴(kuò)展名也是由用戶命名的、1至3個(gè)字符組成的、有效的C+標(biāo)識(shí)符,通常用它來區(qū)分文件的類型。 如在C+系統(tǒng)

5、中,用擴(kuò)展名h表示頭文件,用擴(kuò)展名cpp表示程序文件,用obj表示程序文件被編譯后生成的目標(biāo)文件,用exe表示連接整個(gè)程序中所有目標(biāo)文件后生成的可執(zhí)行文件。 對(duì)于用戶建立的用于保存數(shù)據(jù)的文件,通常用dat表示擴(kuò)展名,若它是由字符構(gòu)成的文本文件則也用txt作為擴(kuò)展名,若它是由字節(jié)構(gòu)成的、能夠進(jìn)行隨機(jī)存取的內(nèi)部格式文件則可用ran表示擴(kuò)展名。 文件擴(kuò)展名也是由用戶命名的、1至3個(gè)字 在C+程序中使用的保存數(shù)據(jù)的文件按存儲(chǔ)格式分為兩種類型,一種為字符格式文件,簡(jiǎn)稱字符文件,另一種為內(nèi)部格式文件,簡(jiǎn)稱字節(jié)文件。字符文件又稱ASCII碼文件或文本文件,字節(jié)文件又稱二進(jìn)制文件。 在字符文件中,每個(gè)字節(jié)單元

6、的內(nèi)容為字符的ASCII碼,被讀出后能夠直接送到顯示器或打印機(jī)上顯示或打印出對(duì)應(yīng)的字符,供人們直接閱讀。 在字節(jié)文件中,文件內(nèi)容是數(shù)據(jù)的內(nèi)部表示,是從內(nèi)存中直接復(fù)制過來的。當(dāng)然對(duì)于字符信息,數(shù)據(jù)的內(nèi)部表示就是ASCII碼表示,所以在字符文件和在字節(jié)文件中保存的字符信息沒有差別,但對(duì)于數(shù)值信息,數(shù)據(jù)的內(nèi)部表示和ASCII碼表示截然不同,所以在字符文件和在字節(jié)文件中保存的數(shù)值信息也截然不同。 在C+程序中使用的保存數(shù)據(jù)的文件 要在程序中使用文件時(shí),首先要在開始包含#include命令。由它提供的輸入文件流類ifstream、輸出文件流類ofstream和輸入輸出文件流類fstream定義用戶所需要

7、的文件流對(duì)象,然后利用該對(duì)象調(diào)用相應(yīng)類中的open成員函數(shù),按照一定的打開方式打開一個(gè)文件。文件被打開后,就可以通過流對(duì)象訪問它了,訪問結(jié)束后再通過流對(duì)象關(guān)閉它。 要在程序中使用文件時(shí),首先要在開始包含#incl文件在C+中,要進(jìn)行文件的輸入輸出操作,應(yīng)該:先創(chuàng)建一個(gè)流對(duì)象,如構(gòu)造一個(gè)ofstream類的對(duì)象,以便進(jìn)行文件的輸出打開文件,就是將這個(gè)流對(duì)象和具體的文件相關(guān)聯(lián)進(jìn)行文件的讀寫操作關(guān)閉文件輸出流文件在C+中,要進(jìn)行文件的輸入輸出操作,應(yīng)該:輸出流構(gòu)造輸出流對(duì)象和打開文件如果輸出到標(biāo)準(zhǔn)輸出設(shè)備,即使用預(yù)先定義的cout、cerr、clog對(duì)象,則不需要構(gòu)造流對(duì)象。要將信息輸出到文件,就要

8、構(gòu)造和建立流對(duì)象??梢韵葮?gòu)造對(duì)象,再打開文件;也可以在構(gòu)造對(duì)象時(shí),同時(shí)打開文件。輸出流構(gòu)造輸出流對(duì)象和打開文件如果輸出到標(biāo)準(zhǔn)輸出設(shè)備,即使用預(yù)先定構(gòu)造輸出流對(duì)象和打開文件使用缺省構(gòu)造函數(shù),再調(diào)用ofstream類的open成員函數(shù).打開文件時(shí)要指定和對(duì)象關(guān)聯(lián)文件的文件名,文件的打開方式(iosmode): ofstream 對(duì)象名; 對(duì)象名.open(“文件名”,iosmode);如:ofstream outfile; outfile.open(“data.dat”,ios:binary);輸出流構(gòu)造輸出流對(duì)象和打開文件使用缺省構(gòu)造函數(shù),再調(diào)用ofstre構(gòu)造輸出流對(duì)象和打開文件也可使用指針,

9、即指向輸出文件流對(duì)象的指針,通過指針調(diào)用open函數(shù): ofstream *pmyFile = new ofstream; pmyFile-open(“filename”,iosmode);輸出流構(gòu)造輸出流對(duì)象和打開文件也可使用指針,即指向輸出文件流對(duì)象的構(gòu)造輸出流對(duì)象和打開文件也可以一次操作就完成構(gòu)造輸出流對(duì)象和打開文件。即只調(diào)用構(gòu)造函數(shù),而不使用open函數(shù)。在調(diào)用構(gòu)造函數(shù)時(shí)指定文件名和模式 ofstream 對(duì)象名(“文件名”,iosmode);如:ofstream outfile (“data.dat”,ios;binary); (常用方式)輸出流構(gòu)造輸出流對(duì)象和打開文件也可以一次操作

10、就完成構(gòu)造輸出流對(duì)象和使用插入運(yùn)算符和控制格式插入運(yùn)算符是預(yù)先設(shè)計(jì)的,用來將數(shù)據(jù)輸出到一個(gè)流對(duì)象。插入運(yùn)算符與預(yù)先定義的操縱符一起工作,用來控制輸出格式通過已定義的操縱符可以控制輸出寬度、輸出格式、輸出精度等。輸出流使用插入運(yùn)算符和控制格式插入運(yùn)算符是預(yù)先設(shè)計(jì)的,用來將數(shù)控制輸出寬度可使用setw操縱符或width成員函數(shù)來控制每個(gè)輸出項(xiàng)的輸出寬度:#includevoid main( ) doubl evalues=1.23,35,36,653.7,4358.24; for (int i=0;i4;i+) cout.width(10); coutvaluesIn; 輸出流控制輸出寬度可使用s

11、etw操縱符或width成員函數(shù)來控制控制輸出寬度用setw操縱符來控制輸出寬度:#include#include void main( ) doubl evalues=1.23,35,36,653.7,4358.24; char *name=“Jan”, “Ani”, “Pa”, “Yekan”; for (int i=0;i4;i+) coutsetw(6)namei setw(10)valuesin;可以對(duì)數(shù)據(jù)項(xiàng)指定不同的輸出寬度。必須調(diào)用iomanip.h頭文件。輸出流控制輸出寬度用setw操縱符來控制輸出寬度:輸出流控制輸出格式用setiosflags操縱符來設(shè)置輸出格式,輸出結(jié)束后

12、,再用 resetiosflags操縱符取消設(shè)置的格式,恢復(fù)缺省的格式。具體的格式由格式標(biāo)志值指定可以設(shè)置的格式包括:對(duì)齊方式,數(shù)據(jù)的數(shù)制(十進(jìn)、八進(jìn)、十六進(jìn)制)、浮點(diǎn)數(shù)顯示格式等。格式標(biāo)志值可以用OR運(yùn)算(|)進(jìn)行組合。輸出流控制輸出格式用setiosflags操縱符來設(shè)置輸出格式,ios:skipws Skip white space on input.ios:left Left-align values; pad on the right with the fill character.ios:right Right-align values; pad on the left with

13、the fill character (default alignment).ios:internal Add fill characters after any leading sign or base indication, but before the value.ios:dec Format numeric values as base 10 (decimal) (default radix).ios:oct Format numeric values as base 8 (octal).ios:hex Format numeric values as base 16 (hexadec

14、imal).ios:skipws Skip white spaceios:showbase Display numeric constants in a format that can be read by the C+ compiler.ios:showpoint Show decimal point and trailing zeros for floating-point values.ios:uppercase Display uppercase A through F for hexadecimal values and E for scientific values.ios:sho

15、wpos Show plus signs (+) for positive values.ios:scientific Display floating-point numbers in scientific format.ios:fixed Display floating-point numbers in fixed format.ios:unitbuf Cause ostream:osfx to flush the stream after each insertion. By default, cerr is unit buffered.ios:stdio Cause ostream:

16、osfx to flush stdout and stderr after each insertion. ios:showbase Display numeri例 設(shè)置對(duì)齊方式#include#includevoid main( ) double values=1.23, 35.36,653.7,4358.24; char*names=Zoot, Jimmy, Al, Stan; for(int i=0;i4;i+) coutsetiosflags(ios:left)/左對(duì)齊 setw(6)namesi resetiosflags(ios:left)/恢復(fù)默認(rèn) setw(10)valuesI

17、endl;例 設(shè)置對(duì)齊方式控制輸出精度控制輸出精度:用setprecision操縱符#include#includevoid main( ) double values=1.23,35.36,653.7,4358.24; char*names=Zoot, Jimmy, Al, Stan; for(int i=0;i4;i+) coutsetiosflags(ios:left) setw(6)namesi resetiosflags(ios:left) setw(10)setprecision(1)valuesIendl;輸出流控制輸出精度控制輸出精度:用setprecision操縱符程序運(yùn)行結(jié)

18、果:Zoot 1Jimmy 4e+001Al 7e+002Stan 4e+003若改為setprecision(3),即3位有效數(shù)字,結(jié)果成為:Zoot 1.23Jimmy 35.4Al 654Stan 4.36e+003原數(shù)據(jù)為: 1.23, 35.36, 653.7, 4358.24不必使用resetprecision,可直接修改精度。程序運(yùn)行結(jié)果:控制輸出數(shù)制控制輸出進(jìn)制用dec,oct和hex操縱符#include#includevoid main() cout234setw(10)hex234endl 234setw(10)oct234endl 234setw(10)dec234en

19、dl;輸出流控制輸出數(shù)制控制輸出進(jìn)制用dec,oct和hex操縱符輸出程序運(yùn)行結(jié)果:234 eaea 352352 234程序運(yùn)行結(jié)果:綜合示例:ASCII碼表#include #include int main() int i,j=0;for(i=32;i127;i+) cout setw(4) hexi H setw(2) char(i); j+; if (j%8=0) coutendl; return 0; 綜合示例:ASCII碼表#include iostream程序運(yùn)行結(jié)果:20H 21H ! 22H 23H # 24H $ 25H % 26H & 27H 28H ( 29H ) 2

20、aH * 2bH + 2cH , 2dH - 2eH . 2fH /30H 0 31H 1 32H 2 33H 3 34H 4 35H 5 36H 6 37H 738H 8 39H 9 3aH : 3bH ; 3cH 3fH ?40H 41H A 42H B 43H C 44H D 45H E 46H F 47H G48H H 49H I 4aH J 4bH K 4cH L 4dH M 4eH N 4fH O50H P 51H Q 52H R 53H S 54H T 55H U 56H V 57H W58H X 59H Y 5aH Z 5bH 5cH 5dH 5eH 5fH _60H 61H

21、a 62H b 63H c 64H d 65H e 66H f 67H g68H h 69H i 6aH j 6bH k 6cH l 6dH m 6eH n 6fH o70H p 71H q 72H r 73H s 74H t 75H u 76H v 77H w78H x 79H y 7aH z 7bH 7cH | 7dH 7eH 程序運(yùn)行結(jié)果:輸出文件流成員函數(shù)(一)輸出流成員函數(shù)有三種類型1.與操縱符等價(jià)的成員函數(shù)2. 執(zhí)行非格式化寫操作的成員函數(shù)3. 其他修改流狀態(tài)且不同于操縱符或插入 運(yùn)算符的成員函數(shù)輸出流輸出文件流成員函數(shù)(一)輸出流成員函數(shù)有三種類型輸出流Open函數(shù)輸出流的ope

22、n函數(shù)若要用一個(gè)輸出文件流,必須在構(gòu)造函數(shù)或open函數(shù)中把該流與一個(gè)特定的磁盤文件關(guān)聯(lián)起來.文件可以在構(gòu)造流對(duì)象時(shí)打開,也可以用成員函數(shù)open來打開。用open函數(shù)打開文件時(shí)要指定文件名和打開方式。輸出流Open函數(shù)輸出流的open函數(shù)輸出流Open函數(shù)文件打開方式:ios:app: 輸出文件的追加方式ios:ate:到輸入或輸出文件的文件尾ios:in: 打開輸入文件ios:out: 打開輸出文件,隱含方式ios:nocreate : 只打開已存在的文件ios:noreplace : 如果文件已存在則操作失敗ios:trunc : 打開時(shí)替換已存在的同名文件ios:binary : 二進(jìn)

23、制模式打開文件輸出流Open函數(shù)文件打開方式:輸出流文件的讀寫文件打開后,直接用讀寫,但要用與文件關(guān)聯(lián)的流對(duì)象作為目標(biāo):#include int main() ofstream fout(“data.dat”); if(! fout) cout“Cant open file test.txtn”; return 1 fout10“ “123.456“”This is a file.”n”; fout.close(); return 0文件的讀寫文件打開后,直接用讀寫,但要用與文件關(guān)聯(lián)輸出文件流成員函數(shù)(二)輸出流的open函數(shù)若要用一個(gè)輸出文件流,必須在構(gòu)造函數(shù)或open函數(shù)中把該流與一個(gè)特定

24、的磁盤文件關(guān)聯(lián)起來.輸出流的put函數(shù)把一個(gè)字符寫到輸出流中輸出流的write函數(shù)把內(nèi)存中的一塊內(nèi)容寫到一個(gè)輸出文件流中,長(zhǎng)度參數(shù)指出寫的字節(jié)數(shù).輸出流輸出文件流成員函數(shù)(二)輸出流的open函數(shù)輸出流例 輸出二進(jìn)制文件#includestruct Date int mo,da,yr;;/不要忘掉;void main( ) Date dt = 6,10,92; ofstream tfile(“date.dat”,ios:binary); /打開二進(jìn)制文件 tfile.write(char*)&dt,sizeof dt);例 輸出二進(jìn)制文件#include程序運(yùn)行結(jié)果:文件date.dat的內(nèi)容

25、是:06 00 00 00 0A 00 00 00-5C 00 00 00正好是十進(jìn)制數(shù)6、10、92的二進(jìn)制表示,每個(gè)數(shù)4個(gè)字節(jié)。程序運(yùn)行結(jié)果:如果以文本方式打開,程序運(yùn)行結(jié)果:文件date.dat的內(nèi)容是:06 00 00 00 0D 0A 00 00-00 5C 00 00 00十進(jìn)制數(shù)10前面增加了一個(gè)0D,即換行符的ASCII碼,其余不變??梢姴⒉荒苤苯影次谋痉绞捷敵?。而且使10的輸出(認(rèn)為是ASCII碼0A)變?yōu)榛剀嚀Q行符。如果以文本方式打開,程序運(yùn)行結(jié)果:輸出文件流成員函數(shù)(三)輸出流的seekp和tellp函數(shù)一個(gè)輸出文件流保存一個(gè)內(nèi)部指針指出下一次寫數(shù)據(jù)的位置.seekp設(shè)置

26、這個(gè)指針.tellp返回該文件位置.輸出流的close函數(shù)close關(guān)閉與一個(gè)輸出文件流關(guān)聯(lián)的磁盤文件.輸出流的錯(cuò)誤處理函數(shù)bad,fail,good,eof,clear,rdstate.輸出流輸出文件流成員函數(shù)(三)輸出流的seekp和tellp函數(shù)輸二進(jìn)制輸出文件(一)流的缺省輸出模式是文本模式.以文本模式輸出時(shí),遇到10便自動(dòng)擴(kuò)充為回車換行符.而使用二進(jìn)制模式輸出時(shí),所寫的字符是不轉(zhuǎn)換的.使用二進(jìn)制模式輸出到文件的幾種方法:1.構(gòu)造一個(gè)流,然后用setmode函數(shù). ofstream ofs(“test.dat”); ofs.setmode(filebuf:binary);2.使用ofs

27、tream構(gòu)造函數(shù)中的模式參量.3.使用二進(jìn)制操作符代替setmode成員函數(shù). ofsopen(“filename”,iosmode);在調(diào)用構(gòu)造函數(shù)時(shí)指定文件名和模式 ifstream myFile(“filename”,iosmode);輸入流構(gòu)造輸入流對(duì)象構(gòu)造輸入文件流的常用方法輸入流提取運(yùn)算符和輸入流操縱符提取運(yùn)算符()是從一個(gè)輸入流對(duì)象獲取字節(jié)的最容易方法.用于格式化文本輸入,提取數(shù)據(jù)時(shí)以空白符為分隔.成員函數(shù)getline可以讀一個(gè)含有空格的文本塊,并對(duì)其進(jìn)行分析.前面介紹的輸出錯(cuò)誤處理函數(shù),同樣可應(yīng)用于輸入流.實(shí)際上,只有dec,oct和hex等幾個(gè)操縱符對(duì)輸入流對(duì)象具有影響.

28、輸入流提取運(yùn)算符和輸入流操縱符提取運(yùn)算符()是從一個(gè)輸入流對(duì)象輸入文件流成員函數(shù)(一)輸入流成員函數(shù)用于從磁盤文件中輸入.輸入流的open函數(shù)若要用一個(gè)輸入文件流,必須在構(gòu)造函數(shù)或open函數(shù)中把該流與一個(gè)特定的磁盤文件關(guān)聯(lián)起來.輸入流的get函數(shù)功能與“”相像.但get函數(shù)在讀入數(shù)據(jù)時(shí)包括空白字符,而“”在缺省時(shí)拒絕接受.輸入流輸入文件流成員函數(shù)(一)輸入流成員函數(shù)用于從磁盤文件中輸入.#includevoid main( ) char ch; while (ch=cin.get()!=EOF) cout.put(ch);運(yùn)行時(shí)輸入: abc xyz 123則輸出: abc xyz 123注

29、:先輸入到一個(gè)緩沖區(qū),再由get讀入,put輸出。#include輸入文件流成員函數(shù)(二)輸入流的getline函數(shù)允許從輸入流中讀取多個(gè)字符,可以指定輸入終止字符,讀取完成后,從讀取的內(nèi)容中刪除該終止字符.輸入流的read函數(shù)從一個(gè)文件讀字節(jié)到指定的存儲(chǔ)器區(qū)域,所讀字節(jié)數(shù)由長(zhǎng)度參數(shù)確定.若沒給長(zhǎng)度參數(shù),當(dāng)遇到文件結(jié)束時(shí)讀結(jié)束.輸入流輸入文件流成員函數(shù)(二)輸入流的getline函數(shù)輸入流#includevoid main( ) char ch; while (ch=cin.get()!=EOF) cout.put(ch);運(yùn)行時(shí)輸入: abc xyz 123則輸出: abc xyz 123注

30、:先輸入到一個(gè)緩沖區(qū),再由get讀入,put輸出。#include例 讀入一串字符到line數(shù)組,以t終止#include void main() char line100; cout“Type a line terminated by t” endl; cin.getline(line,100,t); coutline;例 讀入一串字符到line數(shù)組,以t終止例 從一個(gè)payroll文件讀一個(gè)二進(jìn)制記錄到一個(gè)結(jié)構(gòu)中#include#include#includevoid main( ) struct double salary; char name23; employee;例 從一個(gè)payr

31、oll文件讀一個(gè)二進(jìn)制記錄到一個(gè)結(jié)構(gòu)中ifstream is (payroll,ios:binary |ios:nocreate); if(is) is.read(char*)&employee,sizeof(employee); employee.salaryendl; else coutERROR:Cannot open file payroll.endl; ifstream is (payroll,ios:bi輸入文件流成員函數(shù)(三)輸入流的seekg和tellg函數(shù)seekg用來設(shè)置指向文件中下一次將讀數(shù)據(jù)的位置的內(nèi)部指針.tellg返回當(dāng)前文件位置

32、.輸入流的close函數(shù)close關(guān)閉與一個(gè)輸入文件流關(guān)聯(lián)的磁盤文件輸入流輸入文件流成員函數(shù)(三)輸入流的seekg和tellg函數(shù)輸例 讀一個(gè)文件并顯示出其中空格的位置#includevoid main( ) char ch; ifstream tfile (payroll,ios:binary |ios:nocreate); if(tfile) while (tfile.good( ) streampos here=tfile.tellg( ); tfile.get(ch); if(ch= ) coutnPositionhereis a space; else coutERROR:Cannot open file payrollendl; 例 讀一個(gè)文件并顯示出其中空格的位置文件payroll的內(nèi)容: 123 44 5555 6 ios:goodPosition3 is a spacePos

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論