13.文件.ppt_第1頁
13.文件.ppt_第2頁
13.文件.ppt_第3頁
13.文件.ppt_第4頁
13.文件.ppt_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、位運算符和位運算,除以外,均為雙目運算符,是兩個二進(jìn)位進(jìn)行運算。 1.按位與運算符(a=a1; a=15; 00001111 a=a1; 00000111 a=7=15/2 右移一位相當(dāng)于該數(shù)除以2(變?。?7.位運算賦值運算符 fp=fopen(文件名,文件使用方式);,功能:按指定方式打開文件 返值:正常打開,為指向文件的指針;打開失敗,為NULL,例 文件打開與測試 FILE *fp; fp=fopen(“aa.c”,“w”); if(fp=NULL) printf(“File open error!n”); exit(0); ,例 FILE *fp; fp= fopen (“c:fe

2、ngyibkctest.dat”,”r”);,例 FILE *fp; char filename=“c:fengyibkctest.dat”; fp= fopen(filename,”r”);,例 文件打開與測試 FILE *fp; if(fp=fopen(“aa.c”,“w”)=NULL) printf(“File open error!n”); exit(0); ,文件關(guān)閉fclose 作用:使文件指針變量與文件“脫鉤”,不能通過該指針 再對文件進(jìn)行讀寫操作 函數(shù)原型:int fclose(FILE *fp),功能:關(guān)閉fp指向的文件 返值:正常關(guān)閉為0;出錯時,非0,不關(guān)閉文件可能會丟失

3、數(shù)據(jù),(2) 文件的讀寫 打開文件-文件讀/寫-關(guān)閉文件 字符I/O:fputc與fgetc fputc 函數(shù)原型:int fputc(int c, FILE *fp) 功能:將內(nèi)存中一字節(jié)代碼c寫入fp指向的文件中,寫入完成,指針 自動移向下一個字節(jié) 返值:正常,返回c;出錯,為EOF,fgetc 函數(shù)原型:int fgetc(FILE *fp) 功能:從fp指向的文件中讀取一字節(jié)代碼,讀取完成后,指針 自動移到下一個字節(jié) 返值:正常,返回讀到的代碼值;讀到文件尾或出錯,為EOF,#define putc(ch,fp) fputc(ch,fp) #define getc(fp) fgetc(

4、fp),#include main() FILE *fp; char ch,*filename=“out.txt”; if(fp=fopen(filename,”r”)=NULL) printf(“cannot open filen”); exit(0); while(ch=fgetc(fp)!=EOF) putchar(ch); fclose(fp); ,判斷二進(jìn)制文件是否結(jié)束 while(!feof(fp) c=fgetc(fp); . ,例 讀文本文件內(nèi)容, 并顯示,判斷文本文件是否結(jié)束,feof 函數(shù)原型: int feof(FILE *fp) 功能:判斷文件是否結(jié)束 返值:文件結(jié)束,

5、返回真(非0);文件未結(jié)束,返回0,#include main() FILE *in, *out; char ch,infile10,outfile10; scanf(%s,infile); scanf(%s,outfile); if (in = fopen(infile, r)= NULL) printf(Cannot open infile.n); exit(0); if (out = fopen(outfile, w)= NULL) printf(Cannot open outfile.n); exit(0); while (!feof(in) fputc(fgetc(in), out)

6、; fclose(in); fclose(out); ,數(shù)據(jù)塊I/O: fwrite與 fread 函數(shù)一般調(diào)用形式:,fwrite(buffer, size, count, fp) fread(buffer, size, count, fp),功能:讀/寫數(shù)據(jù)塊 說明: buffer: 內(nèi)存中要輸入/輸出數(shù)據(jù)塊的首地址 size: 每個要讀/寫的數(shù)據(jù)塊的大?。ㄗ止?jié)數(shù)) count: 要讀/寫的數(shù)據(jù)塊的個數(shù) fp: 要讀/寫的文件指針,讀/寫一個數(shù)據(jù)塊后,自動移到下一 數(shù)據(jù)塊的起始處 fwrite與fread一般用于二進(jìn)制文件的輸入/輸出 返值:成功,返回讀/寫的塊數(shù)count;出錯或文件尾,

7、返回0 請看示例,例 float f2; FILE *fp; fp=fopen(“aa.dat”,“rb”); fread(f,4,2,fp);,for(i=0;i2;i+) fread(,例 struct student int num; char name20; char sex; int age; float score3; stud10; for(i=0;i10;i+) fread(,例 從鍵盤輸入4個學(xué)生數(shù)據(jù),把他們轉(zhuǎn)存到磁盤文件中去,#include #define SIZE 4 struct student_type char name10; int num; int age;

8、char addr15; studSIZE; main() int i; for(i=0;iSIZE;i+) scanf(%s%d%d%s,, ,void save() FILE *fp; int i; if(fp=fopen(d:fengyiexestu_dat,wb)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+) if(fwrite( ,void display() FILE *fp; int i; if(fp=fopen(d:fengyiexestu_dat,rb)=NULL) printf(ca

9、nnot open filen); return; for(i=0;iSIZE;i+) fread( ,fread fwrite,格式化I/O: fprintf與 fscanf 函數(shù)一般調(diào)用方式:,fprintf(文件指針,格式字符串,內(nèi)存變量輸出表列) fscanf(文件指針,格式字符串,內(nèi)存變量輸入表列),功能:按格式對文件進(jìn)行I/O操作 上面介紹的都是順序讀寫方式,例 fprintf(fp,“%d,%6.2f”,i,t); 將i和t按%d,%6.2f格式寫入到fp文件 fscanf(fp,“%d,%f”, 若文件中有3,4.5 ,則從文件中讀取 3 到內(nèi)存變量 i 中 ,讀取 4.5 到

10、內(nèi)存變量 t 中,(3) 文件的定位,例 對一個磁盤文件進(jìn)行顯示和復(fù)制兩次操作,rewind函數(shù) 函數(shù)原型: void rewind(FILE *fp) 功能:重置文件位置指針到文件開頭 返值:無,#include main() FILE *fp1,*fp2; fp1=fopen(d:fengyibkcch12_4.c,r); fp2=fopen(d:fengyibkcch12_41.c,w); while(!feof(fp1) putchar(getc(fp1); rewind(fp1); while(!feof(fp1) putc(getc(fp1),fp2); fclose(fp1);

11、fclose(fp2); ,隨機讀寫:位置指針按需要移動到任意位置,叫,fseek函數(shù) 函數(shù)原型: int fseek(FILE *fp,long offset,int whence) 功能:改變文件位置指針的位置 返值:成功,返回0;失敗,返回非0值,文件指針,位移量(以起始點為基點,移動的字節(jié)數(shù)) 0 向后移動 0 向前移動,起始點 文件開始 SEEK_SET 0 文件當(dāng)前位置 SEEK_CUR 1 文件末尾 SEEK_END 2,例 fseek(fp,100L,0); fseek(fp,50L,1); fseek(fp,-10L,2);,ftell函數(shù) 函數(shù)原型: long ftell(

12、FILE *fp) 功能:返回位置指針當(dāng)前位置(用相對文件開頭的位移量表示) 返值:成功,返回當(dāng)前位置指針位置;失敗,返回-1L,,例 磁盤文件上有3個學(xué)生數(shù)據(jù),要求讀入第1,3學(xué)生數(shù)據(jù)并顯示,以上為常用文件操作函數(shù),打開文件 文件讀/寫 關(guān)閉文件 fopen 字符讀/寫: fputc或putc fclose fgetc或getc 數(shù)據(jù)塊讀/寫:fwrite fread 格式化讀/寫:fprintf fscanf 文件定位: rewind fseek ftell,練習(xí):P.288. 114. 1620. 2530 答案:P.366. 新增網(wǎng)上書籍:C程序設(shè)計題解與上機指導(dǎo) 可從主頁進(jìn)入,察看源程序說明: 課件中的每一個(C Source file)圖標(biāo)對應(yīng)一個擴展名為.C的C程序文件,在放映狀態(tài)單擊此圖標(biāo)應(yīng)能自動啟動 TC 系統(tǒng)顯示此程序。若無法打開,則需在WINDOWS中重建關(guān)聯(lián),98系統(tǒng)下的建立方法如下: 1.打開 TC 文件夾, 找擴展名為 .C的文件,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論