浙江大學(xué)c語言十顏輝PPT課件_第1頁
浙江大學(xué)c語言十顏輝PPT課件_第2頁
浙江大學(xué)c語言十顏輝PPT課件_第3頁
浙江大學(xué)c語言十顏輝PPT課件_第4頁
浙江大學(xué)c語言十顏輝PPT課件_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論