11.6 文件定位函數(shù)_第1頁
11.6 文件定位函數(shù)_第2頁
11.6 文件定位函數(shù)_第3頁
11.6 文件定位函數(shù)_第4頁
11.6 文件定位函數(shù)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、LOGOLOGO掌握文件定位函數(shù)rewind、fseek、ftell函數(shù)Teacher teaching designCONTENTS 目 錄文件定位函數(shù)文件檢測函數(shù)案例分析仿真演練文件定位函數(shù)移動文件內(nèi)部位置指針的函數(shù)主要有兩個即 rewind 函數(shù)和fseek函數(shù)PART 01把文件內(nèi)部的位置指針移到文件首。并清除文件結(jié)束標志和出錯標志功能int rewind(FILE *fp);或int rewind(文件指針);調(diào)用形式如果函數(shù)調(diào)用成功返回0,否則返回非0值。返回值rewind函數(shù)int fseek(文件指針,位移量,起始點);或int fseek(FILE *fp,long offs

2、et,int fromwhere);調(diào)用形式功能用來移動文件內(nèi)部位置指針fseek函數(shù)表示從何處開始計算位移量,規(guī)定的起始點有三種:文件首,當前位置和文件尾。“起始點”指向被移動的文件。“文件指針”表示移動的字節(jié)數(shù),要求位移量是long型數(shù)據(jù),以便在文件長度大于64KB 時不會出錯。當用常量表示位移量時,要求加后綴“L”。“位移量”fseek函數(shù)例如:fseek(fp,100L,0);其意義是把位置指針移到離文件首100個字節(jié)處。起始點fseek函數(shù)fseek函數(shù)一般用于二進制文件。在文本文件中由于要進行轉(zhuǎn)換,故往往計算的位置會出現(xiàn)錯誤。返回文件指針的位置,若出錯則返回1L。返回值3long

3、ftell(FILE *fp);調(diào)用形式1返回當前文件指針的位置。這個位置是指當前文件指針相對于文件開頭的位移量。功能2ftell函數(shù)#include int main(void) FILE *fp; fp = fopen(test.txt, w+); /*按照格式要求將字符串寫入文件*/ fprintf(fp, This is a test); /*讀出文件指針fp的位置*/ printf(The file pointer is at byte %ldn, ftell(fp); fclose(fp); return 0; 舉例感知ftelll函數(shù)本題中ftell函數(shù)的返回值實際上就是該文件的

4、長度。在實際的應(yīng)用中,函數(shù)ftell常用來計算文件的長度。文件檢測函數(shù)PART 02判斷文件是否處于文件結(jié)束位置,功能2如文件結(jié)束,則返回值為1,否則為0。返回值3feof(文件指針);調(diào)用格式1文件結(jié)束檢測函數(shù)ferror(文件指針); 調(diào)用格式檢查文件在用各種輸入輸出函數(shù)進行讀寫時是否出錯功能如未出錯返回值為0,否則表示有錯。返回值讀寫文件出錯檢測函數(shù)用于清除出錯標志,并使文件結(jié)束標志為0功能1它沒有返回值,也未定義任何錯誤??梢酝ㄟ^使用它從文件流的錯誤狀態(tài)中恢復(fù)clearerr(文件指針); 調(diào)用格式clearerr函數(shù)案例分析 交流提升PART 03main() FILE *fp; c

5、har ch; int i=1; qq=&boy; if(fp=fopen(stu_list,rb)=NULL) printf(Cannot open file strike any key exit!); getch(); exit(1); rewind(fp); fseek(fp,i*sizeof(struct stu),0); fread(qq,sizeof(struct stu),1,fp); printf(nnnametnumber age addrn); printf(%st%5d %7d %sn,qq-name,qq-num,qq-age, qq-addr);主函數(shù)str

6、uct stu char name10; int num,age; char addr15;boy,*qq;在學(xué)生文件stu_list中讀出第二個學(xué)生的數(shù)據(jù)。案例分析結(jié)構(gòu)體的定義仿真演練體驗探索PART 041、以下程序段打開文件后,先利用 fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡ILE *myf; ling f1;myf= _ (“test.t”,“rb”); fseek(myf,0,SEEK_END); f1=ftel(myf);fclose(myf);printf(“%dn”,f1); 仿真演練有以下程序運行后的輸出結(jié)果是( )#include main() FILE *fp; int i, k, n; fp=fopen(“data.dat”, “w+”); for(i=1; i6; i+) fprintf(fp,”%d “,i); if(i%3=0) fprintf(fp,”n”); rewind(fp); fscanf(fp, “%d%d”, &k, &a

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論