C語(yǔ)言程序設(shè)計(jì)第10章文件處理_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)第10章文件處理_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)第10章文件處理_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)第10章文件處理_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)第10章文件處理_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第10章文件管理,學(xué)習(xí)目標(biāo),1了解文件的基本概念;2 .了解文件的基本應(yīng)用;3利用文件管理功能,掌握打開(kāi)、讀取、寫入和關(guān)閉文件的基本操作方法。10.1文件基本概念,c文件處理方法,緩沖文件系統(tǒng),非緩沖文件系統(tǒng),例如:整數(shù)10000,它占用兩個(gè)字節(jié)的內(nèi)存,如果輸出到磁盤,它占用五個(gè)字節(jié)的ASCII形式:00110001,0011000,00110011,0011000。舊的C版本(如Unix系統(tǒng)中使用的C)有兩種處理文件的方法:一種稱為“緩沖文件系統(tǒng)”,另一種稱為“非緩沖文件系統(tǒng)”。緩沖文件系統(tǒng):系統(tǒng)自動(dòng)在內(nèi)存中為正在使用的文件創(chuàng)建一個(gè)緩沖區(qū)。無(wú)緩沖文件系統(tǒng):程序?yàn)槲募O(shè)置緩沖區(qū)。10.2文件類

2、型指針,通過(guò)它可以對(duì)它所引用的文件執(zhí)行各種操作。文件指針的一般形式是:文件*指針變量名;文件*fp。10.3文件的基本操作,10.3.1文件的打開(kāi)打開(kāi)文件時(shí),通知編譯系統(tǒng)以下三個(gè)信息:要打開(kāi)的文件名,即要訪問(wèn)的文件名;如何使用文件(讀或?qū)懙?;讓哪個(gè)指針變量指向打開(kāi)的文件。打開(kāi)文件的操作是由fopen函數(shù)完成的。fopen函數(shù)的一般調(diào)用形式是:文件指針名稱=fopen(“文件名”、“使用文件方法”);例如,F(xiàn)ILE * fp;fp=fopen(文件1,r);描述:(1)如果打開(kāi)文件時(shí)出現(xiàn)錯(cuò)誤,fopen函數(shù)將返回空指針值NULL。下列程序段通常用于打開(kāi)文件:(FP=fopen (file1,r

3、)=null) printf(無(wú)法打開(kāi)此文件!n);退出(0);(2)將文本文件讀入內(nèi)存時(shí),應(yīng)將ASCII碼轉(zhuǎn)換為二進(jìn)制碼,將文本文件寫入磁盤時(shí),也應(yīng)將二進(jìn)制碼轉(zhuǎn)換為ASCII碼。讀寫二進(jìn)制文件沒(méi)有這樣的轉(zhuǎn)換。(3)運(yùn)行C程序時(shí),系統(tǒng)會(huì)自動(dòng)打開(kāi)三個(gè)文件:標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件和標(biāo)準(zhǔn)錯(cuò)誤輸出。通常,stdin連接到終端鍵盤,stdout和stderr連接到終端屏幕。10.3.2文件關(guān)閉,fclose功能,一般調(diào)用形式是fclose(文件指針);例如fclose(fp)。其中fp是要關(guān)閉的文件的文件指針。10 . 3 . 3文件讀寫,首先,字符讀寫功能(fputc/fgetc或putc/get

4、c)格式:fgetc(FP);fputc(ch,F(xiàn)P);#define putchar(c) fputc(c,stdout)# define getchar()fgetc(stdin),例如:從鍵盤輸入一些字符,然后將它們一個(gè)接一個(gè)地發(fā)送到磁盤,直到輸入了一個(gè) 。#包括stdio . h main()FILE * FP;char ch,filename10scanf(%s,文件名);如果(fp=fopen(filename,w)=NULL)printf(無(wú)法打開(kāi)文件n);退出(0);ch=getchar();而(ch!=#) putc(ch,F(xiàn)P);put char(ch);ch=getcha

5、r();fc lose(FP);#包含stdio.h main() FILE *in,* outchar ch,infile10,outfile10打印(輸入文件名:n);scanf(%s,infile);打印(輸入輸出文件名:n);scanf(%s,outfile);如果(in=fopen(infile,r)=NULL)printf(“無(wú)法打開(kāi)infilen”);退出(0);將信息從一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件。如果(out=fopen(outfile,w)=NULL) printf(無(wú)法打開(kāi)outfile en);退出(0);while(!feof(in) putc(getc(in),

6、out);fc lose(in);fclose(出局);#包含stdio.h main(argc,argv)int argc;char * argv文件*輸入,*輸出;if (argc!=3)打印(您忘記輸入文件名);退出(0);示例:修改上面的示例,在執(zhí)行可執(zhí)行文件時(shí)輸入兩個(gè)文件名。,如果(in=fopen(argv1,r)=NULL) printf(無(wú)法打開(kāi)INF len);退出(0);如果(out=fopen(argv2,w)=NULL)打印(無(wú)法打開(kāi)outilen);退出(0);while(!feof(in) fputc(fgetc(in),out);fc lose(in);fclos

7、e(出局);第二,字符串讀/寫函數(shù),字符串讀函數(shù)的一般調(diào)用形式是fgets(字符數(shù)組名,n,文件指針);編寫字符串函數(shù)fput的一般調(diào)用形式是:fput(字符串、文件指針);示例:從c1.txt文件中讀取包含10個(gè)字符的字符串。#包含void main()FILE * FP;char str11如果(fp=fopen(c1.txt,r)=NULL)printf(n不能打開(kāi)文件,按任意鍵退出!);退出(0);fgets(str,11,F(xiàn)P);printf(n%sn,str);fc lose(FP);示例:向示例10.2中創(chuàng)建的文件c2.txt添加一個(gè)字符串。#包含void main()FILE

8、* FP;char ch,st20如果(fp=fopen(c2.txt,a)=空)打印(不能打開(kāi)文件,按任意鍵退出!);退出(0);printf(輸入字符串:n);scanf(%s,ST);fputs,F(xiàn)P);fc lose(FP);3。數(shù)據(jù)塊讀/寫功能。數(shù)據(jù)塊讀/寫可以分別通過(guò)函數(shù)fread和fw write來(lái)完成。fread函數(shù)調(diào)用的一般形式是:fread(緩沖區(qū)、大小、計(jì)數(shù)、FP);fwrite函數(shù)的一般調(diào)用形式是:fwrite(緩沖區(qū)、大小、計(jì)數(shù)、FP);描述:(1) fread和fwrite用于一次讀取(寫入)文件的大小*計(jì)數(shù)字節(jié)。(2)如果成功調(diào)用fread和fwrite,它們將返回count值,即輸入或輸出數(shù)據(jù)塊的完整數(shù)量。(3) fread和fwrite通常用于二進(jìn)制文件的輸入和輸出,因?yàn)樗鼈兏鶕?jù)數(shù)據(jù)塊的長(zhǎng)度處理輸入和輸出。示例:從鍵盤輸入四名學(xué)生的數(shù)據(jù),然后將它們傳輸?shù)矫麨椤皩W(xué)生列表”的磁

溫馨提示

  • 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. 人人文庫(kù)網(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)論