版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.,1,第十二章文件,文件概念文件:是保存在外存儲器上的一組數(shù)據(jù)的有序集合。文件的特點是:(1)數(shù)據(jù)長久保存(2)數(shù)據(jù)長度不定(3)數(shù)據(jù)按順序存取語言中的文件完全是字節(jié)代碼的序列(字節(jié)流)可以看作為磁帶,.,2,第十二章文件,文件有兩種數(shù)據(jù)形式:ascii碼(文本文件textstream)a.c程序文件文本文件是字符流二進制碼(二進制文件binarystream)a.exe執(zhí)行文件二進制文件是直接把內(nèi)存數(shù)據(jù)以二進制形式保存。對于一個整型數(shù)1234:以文本文件保存,它是四個字符:ascii碼分別是:49505152;以二進制文件保存,它是1234的二進制數(shù)0 x04D2,.,3,由于磁盤速度相對
2、很低,直接把數(shù)據(jù)寫到磁盤會效率很低,文件,緩沖文件系統(tǒng):向磁盤輸出數(shù)據(jù):數(shù)據(jù)緩沖區(qū),裝滿緩沖區(qū)后磁盤文件。從磁盤讀入數(shù)據(jù):先一次性從磁盤文件將一批數(shù)據(jù)輸入到緩沖區(qū),然后再從緩沖區(qū)逐個讀入數(shù)據(jù)到變量。內(nèi)存單元內(nèi)存單元,數(shù)據(jù),緩沖器,512字節(jié),文件,由操作系統(tǒng)自動完成,程序控制,文件名,用什么標(biāo)識,.,4,文件,文件類型指針使用一個文件指針,來指示文件緩沖區(qū)中具體讀寫的位置。文件指針變量文件指針定義:FILE*fp;文件類型,數(shù)據(jù),緩沖器,512字節(jié),文件,由操作系統(tǒng)自動完成,程序控制,文件名,fp,.,5,文件,文件類型指針文件指針定義:FILE*fp;文件類型文件指針變量語言中允許同時使用多
3、個文件,每個文件都有各自的緩沖區(qū),用不同的文件指針分別指示。,問題:如何使fp與具體文件掛鉤?,.,6,文件的打開,文件打開使文件指針與相應(yīng)文件實體對應(yīng)起來格式:fpfopen(“文件名”,“文件使用方式”)如:fp=fopen(a.dat,r)作用:1在磁盤中找到文件a.dat2在內(nèi)存中開辟512個字節(jié)的緩沖區(qū),并由fp指示文件緩沖區(qū)起始位置3把首塊512字節(jié)數(shù)據(jù):磁盤緩沖器,以后程序只對文件指針進行操作,即用fp代表磁盤文件。,文件使用方式(ASCII碼文件):“r”僅從已建立的文件讀取數(shù)據(jù)“w”僅把數(shù)據(jù)寫到一個新建文件中“a”僅把數(shù)據(jù)寫到已建立的文件的尾部,.,7,文件基本讀寫,我們可以
4、這樣看:文件看作一個數(shù)組(緩沖器),文件指針看作是指向數(shù)組元素的指針,文件操作:對文件指針?biāo)傅木彌_器單元進行存取.限制:文件的讀寫一般是順序進行的,位置完全由文件指針控制,并且文件指針的改變也由系統(tǒng)控制。,.,8,文件基本讀寫,語言文件讀寫函數(shù)磁盤文件操作鍵盤操作chfgetc(fp)ch=getchar()fputc(ch,fp)putchar(ch)fscanf(fp,“格式”,輸入表)scanf()fprintf(fp,“格式”,輸出表)printf()它們的說明在stdio.h中,.,9,文件基本讀寫,例:將一個已存在的文件a.dat的內(nèi)容拷貝到b.dat文件中。FILE*fpa,*
5、fpb;(1)定義文件指針charc;inti;:fpa=fopen(a.dat,r);fpb=fopen(b.dat,w);(2)打開文件并建立相應(yīng)指針c=fgetc(fpa);fputc(c,fpb);(3)文件讀寫c=fgetc(fpa);fputc(c,fpb);fscanf(fpa,%d,(4)關(guān)閉打開的所有文件,每一次讀/寫,文件指針自動+,ab35,.,10,文件基本讀寫,文件程序FILE*fpa,*fpb;(1)定義文件指針fpa=fopen(a.dat,r);(2)打開文件并建立相應(yīng)指針c=fgetc(fpa);fputc(c,fpb);(3)文件讀寫fscanf(fpa,%
6、d,(4)關(guān)閉打開的所有文件,.,11,#includestdio.hmain()FILE*fpa,*fpb;if(fpa=fopen(d:tca.dat,r)=NULL)printf(cannotopenfilea.dat!);exit(0);if(fpb=fopen(d:tcb.dat,w)=NULL)printf(cannotopenfileb.dat!);exit(0);while(!feof(fpa)fputc(fgetc(fpa),fpb);if(fclose(fpa)printf(cannotclosefilea.dat!);exit(0);if(fclose(fpb)printf(cannotclosefileb.dat!);exit(0);,當(dāng)fpa指向文件末尾時,feof(fpa)=非零,fclose(fp)0正常/1有錯,fp=NULL,表明文件不能正常打開,c=fgetc(fpa);while(c!=EOF)fputc(c,fpb);c=fgetc(fpa);,.,12,文件基本讀寫,例:統(tǒng)計文件的行數(shù)main()FILE*fp;intn=0;chatc;if(fp=fopen(d:tca.dat,r)=NULL)printf(cannotopenfilea.dat!);exit(0)
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年濟南護理職業(yè)學(xué)院單招職業(yè)技能考試備考題庫帶答案解析
- 2026年湖南工藝美術(shù)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試模擬試題帶答案解析
- 2026年云南交通運輸職業(yè)學(xué)院單招職業(yè)技能考試備考題庫帶答案解析
- 2026年貴州交通職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試備考題庫附答案詳解
- 2026年湖北城市建設(shè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫帶答案解析
- 貝雕工崗前工作效率考核試卷含答案
- 集材工崗前安全生產(chǎn)基礎(chǔ)知識考核試卷含答案
- 金箔制作工安全生產(chǎn)意識知識考核試卷含答案
- (2025)老視臨床個性化診療專家共識課件
- 鎖具修理工操作知識測試考核試卷含答案
- 道橋模擬考試題與答案
- 畢業(yè)設(shè)計(論文)-基于PLC的醫(yī)院病房呼叫系統(tǒng)設(shè)計
- 外出黨員屬地管理制度
- 物理●海南卷丨2021年海南省普通高中學(xué)業(yè)水平選擇性考試高考物理真題試卷及答案
- 建筑工程質(zhì)量通病防治手冊(含圖)
- 張力放線施工方案
- 軟件系統(tǒng)試運行報告模板
- 《腎臟病學(xué)概論》課件
- 建筑工地工人安全教育
- 碼頭岸電設(shè)施建設(shè)技術(shù)規(guī)范
- 氣管套管安全護理
評論
0/150
提交評論