C 檔案操作

2022-03-21 11:12:51 字數 2418 閱讀 7024

檔案操作

檔案的開啟

file * fopen(const char filename,const char * mode);

檔案的開啟操作 fopen 開啟乙個檔案

(幾種操作檔案的組合)

檔案的關閉操作

int fclose(file *fp);

fclose 關閉乙個檔案 

檔案的讀寫操作

讀取單個字元

fgetc 從檔案中讀取乙個字元int fgetc(file * fp);

fputc 寫乙個字元到檔案中去 int fput(int c,file * fp); 

讀取字串

fgets 從檔案中讀取乙個字串char * fgets(char * s,int n,file *fp);

從檔案中讀取字串並在字串末尾新增'\0',然後存入s,最多讀入n-1個字元

當讀到換行符、到達檔案末尾或者讀滿n-1個字元,函式返回該字串的首位址

讀取失敗返回空指標null

因為出錯和到達檔案末尾都返回null,因此應該使用feof()和ferror()來確定函

數fget()返回null的實際原因

fgets()從指定的流讀字串,讀到換行符時將換行符也作為字串的一部分讀到

字串中來

fputs 寫乙個字串到檔案中去 int fputs(const char * s,file *fp);

出現寫入錯誤返回eof,否則返回乙個非負數

fputs()不會在寫入檔案的字串末尾加上換行符

按格式讀寫檔案

fprintf 往檔案中寫格式化資料 int fprintf(file * fp,const char * format,...)

第乙個引數為檔案指標,第二個引數是格式控制引數,第三個是輸出引數列表

fscanf 格式化讀取檔案中資料 int fscanf(file * fp,const char * format,...)

第乙個引數為檔案指標,第二個引數是格式控制引數,第三個是位址引數列表

按格式讀寫檔案需要知道輸出和位址引數,比較麻煩(個人認為)

按資料塊讀寫檔案

fread 以二進位制形式讀取檔案中的資料

unsigned int fread(void * buffer,unsigned int size,unsigned int count,file * fp)

從fp所指的檔案中讀取資料並儲存到buffer所指向的記憶體中

buffer待讀入資料塊的起始位址

size每個資料塊的大小(待讀入每個資料塊的位元組數)

count最多允許讀取資料塊的個數

函式返回的是實際讀到的資料塊個數

fwrite 以二進位制形式寫資料到檔案中去

unsigned int fwrite(void * buffer,unsigned int size,unsigned int count,file * fp)

buffer待輸出資料塊的起始位址

size每個資料塊的大小(待讀入每個資料塊的位元組數)

count最多允許讀取資料塊的個數

函式返回的是實際讀到的資料塊個數

這兩個函式常於二進位制檔案的輸入和輸出

getw 以二進位制形式讀取乙個整數

putw 以二進位制形式存貯乙個整數

檔案狀態檢查函式

feof 檔案結束int feof(file * fp);

ferror 檔案讀/寫出錯int ferror(file *fp);

檔案出現錯誤函式返回非0值,否則,函式返回0

clearerr 清除檔案錯誤標誌

ftell 了解檔案指標的當前位置 long tell(file * fp);

成功返回檔案當前讀寫位置,否則返回-1l

檔案定位函式

rewind 反繞重置位置指標到檔案首部 void rewind(file * fp);

fseek 隨機定位int fseek(file *fp,long offset,int fromwhere);

功能:將fp的檔案位置指標從fromwhere開始移動offset個位元組指示下乙個要讀取的位置

offset(偏移量)為正向後移動 為負向前移動 要求為長整型資料(常量資料後面要加l)

fromwhere有三種取值:seek_set/0表示檔案來時處 seek_cur/1表示檔案當前位置 seek_end/2表示檔案結尾處

補充:int fflush(file * fp);

無條件地把緩衝區的所有資料寫入物理裝置

C 檔案操作與C 的檔案操作

c filestream 檔案流 主要用於使用二進位制方式讀寫檔案資料,可讀取任何檔案 建立filestream物件 e 建立filestream物件 filemode 指定系統開啟檔案的方式filestream fileaccess 指定檔案的訪問方式 read唯讀,write只寫,readwri...

C 檔案操作

c 追加檔案 sw.writeline 追逐理想 sw.writeline kzlll sw.writeline net筆記 sw.flush sw.close c 拷貝檔案 string orignfile,newfile file.copy orignfile,newfile,true c 刪除...

C 檔案操作

c 檔案操作 軒軒 發表於 2006 2 18 12 40 16 在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器...