文件概念與文件類型指針_第1頁
文件概念與文件類型指針_第2頁
文件概念與文件類型指針_第3頁
文件概念與文件類型指針_第4頁
文件概念與文件類型指針_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、文件分類文件分類:按文件的讀寫方式分類按文件的讀寫方式分類 :n順序文件 。n隨機(jī)文件 。按存儲(chǔ)介質(zhì):按存儲(chǔ)介質(zhì):n磁盤文件:存儲(chǔ)介質(zhì)文件(磁盤、磁帶等)。存儲(chǔ)介質(zhì)文件(磁盤、磁帶等)。n設(shè)備文件:非存儲(chǔ)介質(zhì)(鍵盤、顯示器、打印機(jī)非存儲(chǔ)介質(zhì)(鍵盤、顯示器、打印機(jī)等)。等)。按文件的結(jié)構(gòu)形式分類按文件的結(jié)構(gòu)形式分類 :nASCII文件(文本文件):每個(gè)字節(jié)存放每個(gè)字節(jié)存放ASCIIASCII碼碼,表,表示示一個(gè)字符一個(gè)字符。n二進(jìn)制文件:數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣存數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣存放放。q文件類型結(jié)構(gòu)體文件類型結(jié)構(gòu)體FILE 緩沖文件系統(tǒng)為每個(gè)正使用的文件在內(nèi)存開辟文件信緩沖

2、文件系統(tǒng)為每個(gè)正使用的文件在內(nèi)存開辟文件信息區(qū)。息區(qū)。文件信息用系統(tǒng)定義的名為文件信息用系統(tǒng)定義的名為FILEFILE的結(jié)構(gòu)體描述的結(jié)構(gòu)體描述。FILEFILE定義在定義在stdio.hstdio.h中中。typedef struct /* Turbo C 文件類型聲明 */ short level; /* 緩沖區(qū)滿/空程度 */ unsigned flags; /* 文件狀態(tài)標(biāo)志 */ char fd; /* 文件描述符 */ unsigned char hold; /* 若無緩沖區(qū)不讀取字符 */ short bsize; /* 緩沖區(qū)大小 */ unsigned char *buffer

3、; /* 數(shù)據(jù)傳送緩沖區(qū)位置 */ unsigned char *curp; /* 當(dāng)前讀寫位置 */ unsigned istemp; /* 臨時(shí)文件指示 */ short token; /* 用作無效檢測 */ FILE ; /* 結(jié)構(gòu)體類型名 FILE */文件指針定義形式文件指針定義形式nFILE *文件結(jié)構(gòu)指針名;File * fp;n用法:用法:文件打開文件打開時(shí),系統(tǒng)時(shí),系統(tǒng)自動(dòng)自動(dòng)建立文件結(jié)構(gòu)體,并把指向建立文件結(jié)構(gòu)體,并把指向它的指針返回來,程序通過這個(gè)指針獲得它的指針返回來,程序通過這個(gè)指針獲得文件信息文件信息, ,訪問文件。訪問文件。文件關(guān)閉文件關(guān)閉后,它的文件結(jié)構(gòu)體被釋

4、放。后,它的文件結(jié)構(gòu)體被釋放。系統(tǒng)自動(dòng)打開和關(guān)閉的五個(gè)標(biāo)準(zhǔn)設(shè)備文件標(biāo)準(zhǔn)設(shè)備文件:q打開文件fopen函數(shù)首部: FILE *fopen(char *filename,char *mode)功能:按指定方式打開文件。返值:正常打開,為指向文件結(jié)構(gòu)體的指針;打開失敗,為NULL。要打開的文件名使用文件方式例:文件打開與測試。 FILE *fp; if( fp=fopen(“filename”,“rb+”)=NULL) printf(“cannot open this filen”); exit(0); 例 FILE *fp; fp= fopen (“c:test”,”rb+”); “r+/rb+”

5、 (讀寫)“a/ab” (追加)“w/wb” (只寫)“r/rb” (只讀)“w+/wb+” (讀寫)“a+/ab+” (讀寫)為輸入打開一個(gè)文本/二進(jìn)制文件為輸出打開或建立一個(gè)文本/二進(jìn)制文件為讀/寫打開一個(gè)文本/二進(jìn)制文件為讀/寫建立一個(gè)文本/二進(jìn)制文件為讀/寫打開或建立一個(gè)文本/二進(jìn)制文件向文本/二進(jìn)制文件尾追加數(shù)據(jù)文件使用方式含義磁盤文件輸出文件緩沖區(qū)輸入文件緩沖區(qū)程序數(shù)據(jù)區(qū)a緩沖文件系統(tǒng):fclose不關(guān)閉文件可能會(huì)丟失數(shù)據(jù) 函數(shù)原型:函數(shù)原型:int fputc(int ch, FILE *fp) 功能:把一字符功能:把一字符ch寫入寫入fp指向的文件中指向的文件中。 返值:正常,

6、返回返值:正常,返回ch;出錯(cuò),為;出錯(cuò),為EOF。函數(shù)原型:函數(shù)原型:int fgetc(FILE *fp)功能:功能:從從fp指向的文件中讀取指向的文件中讀取一個(gè)字符。一個(gè)字符。返值:返值:正常,返回讀取的字符;讀到文件尾或出錯(cuò)時(shí),正常,返回讀取的字符;讀到文件尾或出錯(cuò)時(shí),為為EOF。n讀寫方式:讀寫方式:順序讀寫:順序讀寫:位置指針按字節(jié)位置順序移動(dòng)。位置指針按字節(jié)位置順序移動(dòng)。隨機(jī)讀寫:隨機(jī)讀寫:位置指針按需要移動(dòng)到任意位置。位置指針按需要移動(dòng)到任意位置。nrewind函數(shù)n函數(shù): void rewind(FILE *fp);n功能:使fp所指文件的位置指針重置到文件開頭。n返值:無n

7、函數(shù)原型:函數(shù)原型: ftell(fpt);n功能:功能:取得文件內(nèi)部記錄指針當(dāng)前的位取得文件內(nèi)部記錄指針當(dāng)前的位 置,用相對(duì)置,用相對(duì)于文件頭的位移量返回于文件頭的位移量返回。n返值:返值:函數(shù)正常執(zhí)行時(shí)返回文件內(nèi)部記錄指針的當(dāng)前函數(shù)正常執(zhí)行時(shí)返回文件內(nèi)部記錄指針的當(dāng)前操作位置,出錯(cuò)時(shí)返回值為操作位置,出錯(cuò)時(shí)返回值為-1L。n函數(shù)原型:函數(shù)原型: int fseek(FILE *fp,long offset,int origin);n功能:功能:改變文件位置指針的位置改變文件位置指針的位置。n返值:返值:成功,返回成功,返回0;失敗,返回非;失敗,返回非0值值。qferror函數(shù)函數(shù)函數(shù)首部:函數(shù)首部: int ferror(FILE *fp);功能:功能:檢測檢測fp所指所指文件的錯(cuò)誤文件的錯(cuò)誤。返值:返值:未出錯(cuò),返未出錯(cuò),返0;出錯(cuò),返非;出錯(cuò),返非0。說明說明:n(1)每次調(diào)用文件輸入輸出函數(shù),均產(chǎn)生一個(gè)新的每次調(diào)用文件輸入輸出函數(shù),均產(chǎn)生一個(gè)新的ferror函數(shù)值,所以應(yīng)及時(shí)測試函數(shù)值,所以應(yīng)及時(shí)測試。n(2)fopen打開文件時(shí),打開文件時(shí),ferror函數(shù)初值自動(dòng)置為函數(shù)初值自動(dòng)置為0。qclearerr函數(shù)函數(shù)函數(shù)原型:函數(shù)原型: void clearerr(FILE *fp);功能:功能:使使fp所指所指文件錯(cuò)誤標(biāo)志和文件結(jié)束標(biāo)志置為文件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論