欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

第九章流類庫(kù)和輸入輸出(C程序設(shè)計(jì)(第2版)吳乃陵)

上傳人:仙*** 文檔編號(hào):34301583 上傳時(shí)間:2021-10-21 格式:PPT 頁(yè)數(shù):21 大小:160.02KB
收藏 版權(quán)申訴 舉報(bào) 下載
第九章流類庫(kù)和輸入輸出(C程序設(shè)計(jì)(第2版)吳乃陵)_第1頁(yè)
第1頁(yè) / 共21頁(yè)
第九章流類庫(kù)和輸入輸出(C程序設(shè)計(jì)(第2版)吳乃陵)_第2頁(yè)
第2頁(yè) / 共21頁(yè)
第九章流類庫(kù)和輸入輸出(C程序設(shè)計(jì)(第2版)吳乃陵)_第3頁(yè)
第3頁(yè) / 共21頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《第九章流類庫(kù)和輸入輸出(C程序設(shè)計(jì)(第2版)吳乃陵)》由會(huì)員分享,可在線閱讀,更多相關(guān)《第九章流類庫(kù)和輸入輸出(C程序設(shè)計(jì)(第2版)吳乃陵)(21頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第九章第九章 流類庫(kù)和輸入流類庫(kù)和輸入/ /輸出輸出文件是存儲(chǔ)在磁盤、磁帶等外部設(shè)備上數(shù)據(jù)集合,每文件是存儲(chǔ)在磁盤、磁帶等外部設(shè)備上數(shù)據(jù)集合,每一個(gè)文件都必須有一個(gè)唯一名字。使用文件前必須首先一個(gè)文件都必須有一個(gè)唯一名字。使用文件前必須首先打開(kāi)文件,使用后必須關(guān)閉文件。對(duì)文件的操作時(shí)通過(guò)打開(kāi)文件,使用后必須關(guān)閉文件。對(duì)文件的操作時(shí)通過(guò)文件流類完成的。文件流類在流與文件之間建立連接,文件流類完成的。文件流類在流與文件之間建立連接,使用這些文件流類必須用使用這些文件流類必須用#include 編譯指令將編譯指令將fstream.h包含進(jìn)來(lái)包含進(jìn)來(lái)。數(shù)據(jù)從一個(gè)對(duì)象到另一個(gè)對(duì)象的傳送被抽象為數(shù)據(jù)從一個(gè)

2、對(duì)象到另一個(gè)對(duì)象的傳送被抽象為“流流”。數(shù)據(jù)的輸入。數(shù)據(jù)的輸入/輸出就是通過(guò)輸入輸出就是通過(guò)輸入/輸出流來(lái)實(shí)現(xiàn)輸出流來(lái)實(shí)現(xiàn)的。的。 流是一種抽象的概念,負(fù)責(zé)在數(shù)據(jù)的產(chǎn)生者和數(shù)據(jù)流是一種抽象的概念,負(fù)責(zé)在數(shù)據(jù)的產(chǎn)生者和數(shù)據(jù)的使用者之間建立聯(lián)系,并管理數(shù)據(jù)的流動(dòng)。的使用者之間建立聯(lián)系,并管理數(shù)據(jù)的流動(dòng)。 9.1 C+的基本流類體系的基本流類體系流類體系:流類體系:以抽象類模板以抽象類模板ios為基類,流類模板派生體系見(jiàn)圖。整個(gè)為基類,流類模板派生體系見(jiàn)圖。整個(gè)流類模板體系的流類模板體系的標(biāo)準(zhǔn)標(biāo)準(zhǔn)I/O在頭文件在頭文件中說(shuō)明,它包含頭文件中說(shuō)明,它包含頭文件、和和。而輸入輸出。而輸入輸出文件流文件流

3、部分在頭文件部分在頭文件中說(shuō)明。中說(shuō)明。 主要輸入主要輸入/輸出流模板層次輸出流模板層次 iosstreambufistreamostreamifstreamiostreamofstreamfstream指針指針9.2 文件的輸入與輸文件的輸入與輸出出 本節(jié)中文件指的是磁盤文件。本節(jié)中文件指的是磁盤文件。C+根據(jù)文件(根據(jù)文件(file)內(nèi)容)內(nèi)容的數(shù)據(jù)格式,可分為兩類:二進(jìn)制文件和文本文件。的數(shù)據(jù)格式,可分為兩類:二進(jìn)制文件和文本文件。文本文文本文件件由字符序列組成,也稱由字符序列組成,也稱ASCII碼文件,在文本文件中存取碼文件,在文本文件中存取的最小信息單位為字符(的最小信息單位為字符(

4、character),而),而二進(jìn)制文件二進(jìn)制文件中存中存取的最小信息單位為字節(jié)(取的最小信息單位為字節(jié)(Byte)。)。C+把每一個(gè)文件都看成一個(gè)有序的字節(jié)流,見(jiàn)圖把每一個(gè)文件都看成一個(gè)有序的字節(jié)流,見(jiàn)圖9.2,每一個(gè)文件或者以文件結(jié)束符(每一個(gè)文件或者以文件結(jié)束符(end of file marker)結(jié)束,)結(jié)束,或者在特定的字節(jié)號(hào)處結(jié)束?;蛘咴谔囟ǖ淖止?jié)號(hào)處結(jié)束。 012436578n-1文件結(jié)束符文件結(jié)束符圖圖9.2 C+把文件看作有序的把文件看作有序的n個(gè)字節(jié)的流個(gè)字節(jié)的流文件的基本概念:文件的基本概念:9.2 文件的輸入與輸文件的輸入與輸出出當(dāng)打開(kāi)一個(gè)文件時(shí),該文件就和某個(gè)流關(guān)聯(lián)

5、起來(lái)了。對(duì)文件進(jìn)行讀當(dāng)打開(kāi)一個(gè)文件時(shí),該文件就和某個(gè)流關(guān)聯(lián)起來(lái)了。對(duì)文件進(jìn)行讀寫實(shí)際上受到一個(gè)寫實(shí)際上受到一個(gè)文件定位指針(文件定位指針(file position pointer)的控制。的控制。 輸入流的指針也稱為讀指針,每一次提取操作將從讀指針當(dāng)前輸入流的指針也稱為讀指針,每一次提取操作將從讀指針當(dāng)前所指位置開(kāi)始,每次提取操作自動(dòng)將讀指針向文件尾移動(dòng)。所指位置開(kāi)始,每次提取操作自動(dòng)將讀指針向文件尾移動(dòng)。 輸出流指針也稱寫指針,每一次插入操作將從寫指針當(dāng)前位置輸出流指針也稱寫指針,每一次插入操作將從寫指針當(dāng)前位置開(kāi)始,每次插入操作自動(dòng)將寫指針向文件尾移動(dòng)。開(kāi)始,每次插入操作自動(dòng)將寫指針向文

6、件尾移動(dòng)。9.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 9.2.2 文本文件的讀寫文本文件的讀寫9.2.3 二進(jìn)制文件的讀寫二進(jìn)制文件的讀寫 9.2.4 文件的隨機(jī)訪問(wèn)文件的隨機(jī)訪問(wèn)9.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉文件使用步驟:文件使用步驟:1說(shuō)明一個(gè)文件流對(duì)象,這又被稱為內(nèi)部文件:說(shuō)明一個(gè)文件流對(duì)象,這又被稱為內(nèi)部文件:ifstream ifile;/只輸入用只輸入用ofstream ofile;/只輸出用只輸出用fstream iofile;/既輸入又輸出用既輸入又輸出用 2使用文件流對(duì)象的成員函數(shù)打開(kāi)一個(gè)磁盤文件。這樣在文使用文件流對(duì)象的成員函數(shù)打開(kāi)一個(gè)磁盤文件。這樣在文件流

7、對(duì)象和磁盤文件名之間建立聯(lián)系。文件流中說(shuō)明了三個(gè)打件流對(duì)象和磁盤文件名之間建立聯(lián)系。文件流中說(shuō)明了三個(gè)打開(kāi)文件的成員函數(shù)。開(kāi)文件的成員函數(shù)。void ifstream:open(const char*,int =ios:in, int=filebuf:openprot);void ofstream:open(const char *,int=ios:out, int=filebuf:opernprot);void fstream:open(const char*,int, int=filebuf:openprot); 第一個(gè)參數(shù)為要打開(kāi)的磁盤文件名。第二個(gè)參數(shù)為打開(kāi)方式,第一個(gè)參數(shù)為要打開(kāi)的磁

8、盤文件名。第二個(gè)參數(shù)為打開(kāi)方式,有輸入(有輸入(in),輸出(),輸出(out)等,打開(kāi)方式在)等,打開(kāi)方式在ios基類中定義為基類中定義為枚舉類型。第三個(gè)參數(shù)為指定打開(kāi)文件的保護(hù)方式,一般取默枚舉類型。第三個(gè)參數(shù)為指定打開(kāi)文件的保護(hù)方式,一般取默認(rèn)。認(rèn)。所以第二步可如下進(jìn)行:所以第二步可如下進(jìn)行:iofile.open(“myfile.txt”,ios:in|ios:out);文件打開(kāi)方式文件打開(kāi)方式: :是由在是由在ios類中定義的公有枚舉成員決定:類中定義的公有枚舉成員決定:enum open_mode in=0 x01,out=0 x02,ate=0 x04,app=0 x08,tru

9、nc=0 x10,binary=0 x80; ios:in ios:in 打開(kāi)文件進(jìn)行讀操作打開(kāi)文件進(jìn)行讀操作 ios:outios:out 打開(kāi)文件進(jìn)行寫操作打開(kāi)文件進(jìn)行寫操作 ios:ateios:ate 打開(kāi)時(shí)文件指針定位到文件尾打開(kāi)時(shí)文件指針定位到文件尾 ios:appios:app 添加模式,所有增加都在文件尾部進(jìn)行添加模式,所有增加都在文件尾部進(jìn)行 ios:truncios:trunc 如果文件已經(jīng)存在則清空源文件如果文件已經(jīng)存在則清空源文件 ios:nocreateios:nocreate 如果文件不存在則打開(kāi)失敗如果文件不存在則打開(kāi)失敗 ios:noreplaceios:nor

10、eplace 如果文件存在則打開(kāi)失敗如果文件存在則打開(kāi)失敗 ios:binaryios:binary 二進(jìn)制文件(非文本文件)二進(jìn)制文件(非文本文件)ModeMode的符號(hào)常量可以用位或運(yùn)算的符號(hào)常量可以用位或運(yùn)算| |組合在一起,如:組合在一起,如:ios:in|ios:binaryios:in|ios:binary 只讀方式打開(kāi)二進(jìn)制文件只讀方式打開(kāi)二進(jìn)制文件對(duì)于對(duì)于ifstreamifstream流,流,modemode默認(rèn)方式是默認(rèn)方式是ios;inios;in;對(duì)于對(duì)于ofstream流,流,mode默認(rèn)默認(rèn)方式是方式是ios;out;打開(kāi)方式解釋:Port決定文件的訪問(wèn)方式0 普通

11、文件 2 隱含文件1 只讀文件 4 系統(tǒng)文件 三個(gè)文件流類都重載了一個(gè)帶默認(rèn)參數(shù)的三個(gè)文件流類都重載了一個(gè)帶默認(rèn)參數(shù)的構(gòu)造函構(gòu)造函數(shù)數(shù),功能與,功能與open函數(shù)一樣:函數(shù)一樣:ifstream:ifstream(const char*, int=ios:in, int=filebuf:openprot);ofstream:ofstream(const char*,int=ios:out, int=filebuf:openprot);fstream:fstream(const char*,int, int=filebuf:operprot);所以所以1,2兩步可合成:兩步可合成:fstream

12、 iofile(”myfile.txt”,ios:in|ios:out);打開(kāi)文件也應(yīng)該判斷是否成功,若成功,文件流對(duì)打開(kāi)文件也應(yīng)該判斷是否成功,若成功,文件流對(duì)象值為非零值,不成功為象值為非零值,不成功為0(NULL),),文件流對(duì)象文件流對(duì)象值物理上就是指它的地址值物理上就是指它的地址。因此打開(kāi)一個(gè)文件完整的程序?yàn)椋阂虼舜蜷_(kāi)一個(gè)文件完整的程序?yàn)椋篺stream iofile(”myfile.txt”,ios:in|ios:out);if(!iofile) cout”不能打開(kāi)文件不能打開(kāi)文件:”myfile.txt”endl;return -1; /失敗退回失敗退回使用使用提取提取和和插入運(yùn)

13、算符插入運(yùn)算符對(duì)文件進(jìn)行讀寫操作,對(duì)文件進(jìn)行讀寫操作,或使用或使用成員函數(shù)成員函數(shù)進(jìn)行讀寫。進(jìn)行讀寫。輸出流函數(shù)輸出流函數(shù): get readPut函數(shù)函數(shù) 該函數(shù)把一個(gè)字符寫到輸出流中。該函數(shù)把一個(gè)字符寫到輸出流中。 Cout相似,主要的不同點(diǎn)相似,主要的不同點(diǎn)get函數(shù)在讀取數(shù)據(jù)時(shí)函數(shù)在讀取數(shù)據(jù)時(shí)包括空白字符,而包括空白字符,而在默認(rèn)情況下拒絕接受空白字符。在默認(rèn)情況下拒絕接受空白字符。Write函數(shù)函數(shù) 該函數(shù)把內(nèi)存中的一塊內(nèi)容寫到一個(gè)輸出文件流中,長(zhǎng)度參數(shù)指出寫的字該函數(shù)把內(nèi)存中的一塊內(nèi)容寫到一個(gè)輸出文件流中,長(zhǎng)度參數(shù)指出寫的字節(jié)數(shù)。該函數(shù)遇到空字符時(shí)并不停止,因而能夠?qū)懭胪暾念惤Y(jié)構(gòu)

14、,該函數(shù)帶節(jié)數(shù)。該函數(shù)遇到空字符時(shí)并不停止,因而能夠?qū)懭胪暾念惤Y(jié)構(gòu),該函數(shù)帶2個(gè)參個(gè)參數(shù),一個(gè)數(shù),一個(gè)char型指針(指向內(nèi)存數(shù)據(jù)的起始地址)和一個(gè)所寫的字節(jié)數(shù)。型指針(指向內(nèi)存數(shù)據(jù)的起始地址)和一個(gè)所寫的字節(jié)數(shù)。注意在該注意在該結(jié)構(gòu)的對(duì)象地址之前要結(jié)構(gòu)的對(duì)象地址之前要char做強(qiáng)制類型轉(zhuǎn)換。做強(qiáng)制類型轉(zhuǎn)換。read函數(shù)函數(shù) 該函數(shù)從一個(gè)文件讀字節(jié)到一個(gè)指定的存儲(chǔ)器區(qū)域,由長(zhǎng)度參數(shù)確定要讀該函數(shù)從一個(gè)文件讀字節(jié)到一個(gè)指定的存儲(chǔ)器區(qū)域,由長(zhǎng)度參數(shù)確定要讀的字節(jié)數(shù)。雖然給出長(zhǎng)度參數(shù),但當(dāng)遇到文件結(jié)束或者在文本模式文件中遇到文件的字節(jié)數(shù)。雖然給出長(zhǎng)度參數(shù),但當(dāng)遇到文件結(jié)束或者在文本模式文件中遇到文

15、件結(jié)束標(biāo)記時(shí)讀結(jié)束。結(jié)束標(biāo)記時(shí)讀結(jié)束。關(guān)閉文件。三個(gè)文件流類各有一個(gè)關(guān)閉關(guān)閉文件。三個(gè)文件流類各有一個(gè)關(guān)閉文件的成員函數(shù)文件的成員函數(shù) :void ifstream:close();void ofstream:close();void fstream:close();使用很方便,如:使用很方便,如:iofile.close(); 關(guān)閉文件時(shí),系統(tǒng)把該文件相關(guān)聯(lián)的文件緩沖關(guān)閉文件時(shí),系統(tǒng)把該文件相關(guān)聯(lián)的文件緩沖區(qū)中的數(shù)據(jù)寫到文件中,保證文件的完整,收回與區(qū)中的數(shù)據(jù)寫到文件中,保證文件的完整,收回與該文件相關(guān)的內(nèi)存空間,可供再分配,把磁盤文件該文件相關(guān)的內(nèi)存空間,可供再分配,把磁盤文件名與文件流對(duì)

16、象之間的關(guān)聯(lián)斷開(kāi),可防止誤操作修名與文件流對(duì)象之間的關(guān)聯(lián)斷開(kāi),可防止誤操作修改了磁盤文件。如又要對(duì)文件操作必須重新打開(kāi)。改了磁盤文件。如又要對(duì)文件操作必須重新打開(kāi)。 關(guān)閉文件并沒(méi)有取消文件流對(duì)象,該文件流對(duì)關(guān)閉文件并沒(méi)有取消文件流對(duì)象,該文件流對(duì)象又可與其他磁盤文件建立聯(lián)系。文件流對(duì)象在程象又可與其他磁盤文件建立聯(lián)系。文件流對(duì)象在程序結(jié)束時(shí),或它的生命期結(jié)束時(shí),由析構(gòu)函數(shù)撤消。序結(jié)束時(shí),或它的生命期結(jié)束時(shí),由析構(gòu)函數(shù)撤消。它同時(shí)釋放內(nèi)部分配的預(yù)留緩沖區(qū)。它同時(shí)釋放內(nèi)部分配的預(yù)留緩沖區(qū)。 例1 分析以下程序的運(yùn)行結(jié)果,對(duì)文本文件的讀寫直接使用插入運(yùn)算符 和提取運(yùn)算符#include #inclu

17、de int main() ofstream ofile(“test”); /打開(kāi)打開(kāi)test文件用于寫文件用于寫,即輸出即輸出 ofile.open() if (!ofile) cout test文件不能打開(kāi)文件不能打開(kāi) endl; return 0; ofile This book is C+ 12345 endl; ofile.close(); ifstream ifile(test); /打開(kāi)打開(kāi)test文件用于讀文件用于讀,即輸入即輸入 if (!ifile) cout test文件不能打開(kāi)文件不能打開(kāi) str; / 與與get不同,不同, 遇到空格時(shí)結(jié)束遇到空格時(shí)結(jié)束 ifile.

18、close(); cout str endl; return 1;9.2.2 文本文件的讀寫文本文件的讀寫 int main() char ch; ifstream sfile(d:1.cpp); ofstream dfile(“d:2.cpp); /只能創(chuàng)建文件,不能建立子目錄,如路徑不存在則失敗只能創(chuàng)建文件,不能建立子目錄,如路徑不存在則失敗 if(!sfile) cout不能打開(kāi)源文件不能打開(kāi)源文件:d:1.cppendl; return -1; if(!dfile) cout不能打開(kāi)目標(biāo)文件不能打開(kāi)目標(biāo)文件:“d:2.cppch) dfilech; sfile.close(); /如沒(méi)

19、有這兩個(gè)關(guān)閉函數(shù)如沒(méi)有這兩個(gè)關(guān)閉函數(shù),析構(gòu)函數(shù)也可關(guān)閉析構(gòu)函數(shù)也可關(guān)閉 dfile.close(); return 0;例2 分析以下程序的運(yùn)行結(jié)果,例3 編寫一個(gè)程序,將文本文件abc.txt復(fù)制到文本文件xyz.txt解:使用輸入流成員函數(shù)get()從文本文件abc.txt中讀取一個(gè)字符ch,然后使用輸出流成員函數(shù)put()將字符ch寫入文本文件xyz.txt中,繼續(xù)這一過(guò)程直到get()讀完為止。程序如下:#include #include int main() ifstream ifile(abc.txt); if (!ifile) cout abc.txt文件不能打開(kāi)文件不能打開(kāi) e

20、ndl; return 0; ofstream ofile(xyz.txt); if (!ofile) cout xyz.txt文件不能打開(kāi)文件不能打開(kāi) endl; return 0; char ch; while (ifile.get(ch) ofile.put(ch); ifile.close(); ofile.close(); return 1;例例4 編寫一個(gè)程序建立一個(gè)輸出文件流,并將一個(gè)編寫一個(gè)程序建立一個(gè)輸出文件流,并將一個(gè)Date結(jié)構(gòu)體變量結(jié)構(gòu)體變量的二進(jìn)制值寫到該文件中。的二進(jìn)制值寫到該文件中。解:對(duì)二進(jìn)制文件的讀寫可以采用解:對(duì)二進(jìn)制文件的讀寫可以采用2種方法,一種是使用種

21、方法,一種是使用get()、()、put(),另一種是使用(),另一種是使用read()和()和write(),定義一個(gè)結(jié)構(gòu)體(),定義一個(gè)結(jié)構(gòu)體Date變量變量dt并初始化,通過(guò)并初始化,通過(guò)write語(yǔ)句將其寫入到文件語(yǔ)句將其寫入到文件data.dat中。中。程序如下:程序如下:#include struct Date int mo,da,yr;void main() Date dt=2,20,2001; ofstream ofile(data.dat,ios:binary); ofile.write(char *)&dt,sizeof (dt); ofile.close();9.2.3

22、二進(jìn)制文件的讀寫二進(jìn)制文件的讀寫每一個(gè)文件都有兩個(gè)指針,一個(gè)是讀指針,指示輸入操作當(dāng)前在文件每一個(gè)文件都有兩個(gè)指針,一個(gè)是讀指針,指示輸入操作當(dāng)前在文件中的位置;另一個(gè)是寫指針,指示下次寫操作的當(dāng)前位置。中的位置;另一個(gè)是寫指針,指示下次寫操作的當(dāng)前位置。C+語(yǔ)言語(yǔ)言的文件不僅可以按這種順序方式進(jìn)行讀的文件不僅可以按這種順序方式進(jìn)行讀/寫,而且可以隨機(jī)地移動(dòng)文寫,而且可以隨機(jī)地移動(dòng)文件的讀寫指針。件的讀寫指針。(1)輸出流隨機(jī)訪問(wèn)函數(shù)。)輸出流隨機(jī)訪問(wèn)函數(shù)。 一個(gè)輸出文件流保存一個(gè)內(nèi)部指針以指出下一次寫數(shù)據(jù)的位置。一個(gè)輸出文件流保存一個(gè)內(nèi)部指針以指出下一次寫數(shù)據(jù)的位置。輸出流隨機(jī)訪問(wèn)函數(shù)有輸出

23、流隨機(jī)訪問(wèn)函數(shù)有seekp(下一次寫數(shù)據(jù)的位置)和(下一次寫數(shù)據(jù)的位置)和tellp返返回回seekp()函數(shù)指針值。函數(shù)指針值。 seekp(偏移量,參照位置偏移量,參照位置) beg=0, /文件開(kāi)頭文件開(kāi)頭 cur=1, /文件指針的當(dāng)前位置文件指針的當(dāng)前位置 end=2 /文件結(jié)尾文件結(jié)尾 偏移量:被定義為偏移量:被定義為long型,以字節(jié)數(shù)為單位。型,以字節(jié)數(shù)為單位。9.2.4 文件的隨機(jī)讀寫文件的隨機(jī)讀寫(2)輸入流隨機(jī)訪問(wèn)函數(shù)。)輸入流隨機(jī)訪問(wèn)函數(shù)。 在輸入流文件中,保留著一個(gè)指向文件中下一個(gè)將要讀數(shù)據(jù)的位置在輸入流文件中,保留著一個(gè)指向文件中下一個(gè)將要讀數(shù)據(jù)的位置的內(nèi)部指針,可

24、以用的內(nèi)部指針,可以用seekg(來(lái)設(shè)置這個(gè)指針)和(來(lái)設(shè)置這個(gè)指針)和tellg(返回當(dāng)前文件讀(返回當(dāng)前文件讀指針的位置)指針的位置)。seekg(偏移量,參照位置偏移量,參照位置) beg=0, /文件開(kāi)頭文件開(kāi)頭 cur=1, /文件指針的當(dāng)前位置文件指針的當(dāng)前位置 end=2 /文件結(jié)尾文件結(jié)尾 偏移量:被定義為偏移量:被定義為long型,以字節(jié)數(shù)為單位。型,以字節(jié)數(shù)為單位。使用使用seekg可以實(shí)現(xiàn)面向記錄的數(shù)據(jù)管理系統(tǒng),用固定長(zhǎng)度的記錄大小乘可以實(shí)現(xiàn)面向記錄的數(shù)據(jù)管理系統(tǒng),用固定長(zhǎng)度的記錄大小乘以記錄號(hào)便得到相對(duì)于文件頭的字節(jié)位置,然后使用以記錄號(hào)便得到相對(duì)于文件頭的字節(jié)位置,然

25、后使用get讀這個(gè)記錄。讀這個(gè)記錄。例例5 編寫一個(gè)程序,在文件編寫一個(gè)程序,在文件city.dat中輸入幾個(gè)城市的名字和區(qū)號(hào),并根據(jù)用戶中輸入幾個(gè)城市的名字和區(qū)號(hào),并根據(jù)用戶輸入的區(qū)號(hào)查找對(duì)應(yīng)的城市。輸入的區(qū)號(hào)查找對(duì)應(yīng)的城市。解:設(shè)計(jì)一個(gè)解:設(shè)計(jì)一個(gè)City類,用于數(shù)據(jù)處理。以讀寫方式打開(kāi)文件類,用于數(shù)據(jù)處理。以讀寫方式打開(kāi)文件City.dat,在其中寫入幾個(gè)城,在其中寫入幾個(gè)城市數(shù)據(jù),然后將讀指針移到文件頭,依次查找用戶輸入的區(qū)號(hào),找到后顯示。程序如下:市數(shù)據(jù),然后將讀指針移到文件頭,依次查找用戶輸入的區(qū)號(hào),找到后顯示。程序如下:例例6 編寫一個(gè)程序,在二進(jìn)制文件編寫一個(gè)程序,在二進(jìn)制文件data.dat中寫入中寫入3條記錄,顯示其內(nèi)容;然后條記錄,顯示其內(nèi)容;然后刪除第刪除第2條記錄,并顯示刪除記錄后的文件內(nèi)容。條記錄,并顯示刪除記錄后的文件內(nèi)容。解:解:C+不能直接刪除文件中的記錄,采用的方法是,先將記錄讀入到結(jié)構(gòu)數(shù)組不能直接刪除文件中的記錄,采用的方法是,先將記錄讀入到結(jié)構(gòu)數(shù)組stud中,中,然后再重寫入到然后再重寫入到data.dat文件中,這時(shí)不寫要?jiǎng)h除的內(nèi)容。程序如下:文件中,這時(shí)不寫要?jiǎng)h除的內(nèi)容。程序如下:

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!