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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、放。后,它的文件結構體被釋放。系統(tǒng)自動打開和關閉的五個標準設備文件標準設備文件:q打開文件fopen函數首部: FILE *fopen(char *filename,char *mode)功能:按指定方式打開文件。返值:正常打開,為指向文件結構體的指針;打開失敗,為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+” (讀寫)為輸入打開一個文本/二進制文件為輸出打開或建立一個文本/二進制文件為讀/寫打開一個文本/二進制文件為讀/寫建立一個文本/二進制文件為讀/寫打開或建立一個文本/二進制文件向文本/二進制文件尾追加數據文件使用方式含義磁盤文件輸出文件緩沖區(qū)輸入文件緩沖區(qū)程序數據區(qū)a緩沖文件系統(tǒng):fclose不關閉文件可能會丟失數據 函數原型:函數原型:int fputc(int ch, FILE *fp) 功能:把一字符功能:把一字符ch寫入寫入fp指向的文件中指向的文件中。 返值:正常,

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

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

溫馨提示

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

評論

0/150

提交評論