C語言讀寫檔案

2021-06-20 23:33:54 字數 3041 閱讀 1869

c語言庫函式包括檔案的開啟、關閉、讀、寫、 定位等各種操作

要操作檔案,首先要宣告乙個檔案指標變數file* fp;

呼叫fopen開啟檔案

檔案指標名=fopen(檔名,使用檔案方式);  ps:這裡檔案路徑必須是帶雙斜槓\\

其中, 1.

檔案使用方式        意 義

「rt」      唯讀開啟乙個文字檔案,只允許讀資料

「wt」      只寫開啟或建立乙個文字檔案,只允許寫資料

「at」      追加開啟乙個文字檔案,並在檔案末尾寫資料

「rb」      唯讀開啟乙個二進位制檔案,只允許讀資料

「wb」       只寫開啟或建立乙個二進位制檔案,只允許寫資料

「ab」       追加開啟乙個二進位制檔案,並在檔案末尾寫資料

「rt+」      讀寫開啟乙個文字檔案,允許讀和寫

「wt+」      讀寫開啟或建立乙個文字檔案,允許讀寫

「at+」      讀寫開啟乙個文字檔案,允許讀,或在檔案末追加數 據

「rb+」      讀寫開啟乙個二進位制檔案,允許讀和寫

「wb+」      讀寫開啟或建立乙個二進位制檔案,允許讀和寫

「ab+」      讀寫開啟乙個二進位制檔案,允許讀,或在檔案末追加資料

r:讀檔案

w:寫檔案

a:在檔案末尾追加

t:文字檔案,可省略

b:二進位制檔案

+:讀與寫

2.只用r時,只能開啟乙個已存在檔案,並讀取資料

3.用「w」開啟的檔案只能向該檔案寫入。 若開啟的檔案不存在,則以指定的檔名建立該檔案,若開啟的檔案已經存在,則將該檔案刪去,重建乙個新檔案。

4.把乙個文字檔案讀入記憶體時,要將ascii碼轉換成二進位製碼, 而把檔案以文字方式寫入磁碟時,也要把二進位製碼轉換成ascii碼,因此文字檔案的讀寫要花費較多的轉換時間。對二進位制檔案的讀寫不存在這種轉換。

5.檔案使用完應該關閉,呼叫fclose函式。

簡單地呼叫fclose(fp);

字元讀寫函式:fgetc和fputc

字元變數=fgetc(檔案指標);   ps:判斷字元變數是否為eof來判斷是否到達檔案尾部

1. 在fgetc函式呼叫中,讀取的檔案必須是以讀或讀寫方式開啟的。

2. 在檔案內部有乙個位置指標。用來指向檔案的當前讀寫位元組。在檔案開啟時,該指標總是指向檔案的第乙個位元組。使用fgetc 函式後,該位置指標將向後移動乙個位元組。 因此可連續多次使用fgetc函式,讀取多個字元。應注意檔案指標和檔案內部的位置指標不是一回事。檔案指標是指向整個檔案的,須在程式中定義說明,只要不重新賦值,檔案指標的值是不變的。檔案內部的位置指標用以指示檔案內部的當前讀寫位置,每讀寫一次,該指標均向後移動,它不需在程式中定義說明,而是由系統自動設定的。

fputc(字元,檔案指標);

1.被寫入的檔案可以用、寫、讀寫,追加方式開啟,用寫或讀寫方式開啟乙個已存在的檔案時將清除原有的檔案內容,寫入字元從檔案首開始。如需保留原有檔案內容,希望寫入的字元以檔案末開始存放,必須以追加方式開啟檔案。被寫入的檔案若不存在,則建立該檔案。

2. 每寫入乙個字元,檔案內部位置指標向後移動乙個位元組。

3. fputc函式有乙個返回值,如寫入成功則返回寫入的字元, 否則返回乙個eof。可用此來判斷寫入是否成功。

字串讀寫函式:fgets和fputs

fgets(字元陣列名,n,檔案指標);從fp所指的檔案中讀出n-1個字元送入字元陣列中。

1. 在讀出n-1個字元之前,如遇到了換行符或eof,則讀出結束。

2. fgets函式也有返回值,其返回值是字元陣列的首位址。

fputs(字串,檔案指標)  ps:字串可以是字串常量,也可以是字元陣列名, 或指標變數

資料塊讀寫函式:freed和fwrite

可用來讀寫一組資料,如乙個陣列元素,乙個結構變數的值

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

buffer表示存放輸入、輸出資料的首位址, size表示資料塊的位元組數,count 表示要讀寫的資料塊塊數,fp 表示檔案指標。

格式化讀寫函式:fscanf和fprinf

fscanf(檔案指標,格式字串,輸入列表);

fprintf(檔案指標,格式字串,輸出列表);

rewind(檔案指標); 它的功能是把檔案內部的位置指標移到檔案首。

fseek(檔案指標,位移量,起始點);  用來移動檔案內部位置指標。其中位移量是long型,後加l

起始點    表示符號    數字表示

——————————————————————————

檔案首    seek_set    0

當前位置   seek_cur      1

檔案末尾   seek_end      2

檔案指標到當前內部位置指標的相對位移=ftell(檔案指標) ; 用來獲取檔案大小

fseek(fp, 0, seek_end);

length = ftell(fp);

feof(檔案指標);

功能:判斷檔案是否處於檔案結束位置,如檔案結束,則返回值為1,否則為0。

ferror(檔案指標);

功能:檢查檔案在用各種輸入輸出函式進行讀寫時是否出錯。 如ferror返回值為0表示未出錯,否則表示有錯。

clearerr(檔案指標); 

功能:本函式用於清除出錯標誌和檔案結束標誌,使它們為0值。

C語言檔案讀寫

include include define maxlen 1024 int main file outfile,infile outfile fopen 1.bmp wb infile fopen c 1.bmp rb unsigned char buf maxlen int rc while r...

C語言檔案讀寫

讀取乙個完整的檔案 include include int main 如果檔案錯誤,退出1 獲得檔案大小 fseek pfile 0 seek end 指標移到檔案末位 lsize ftell pfile 獲得檔案長度 rewind pfile 函式rewind 把檔案指標移到由stream 流 指...

c語言檔案讀寫

file pfile fopen 1.txt r 獲取檔案的指標 char pbuf 定義檔案指標 fseek pfile,0,seek end 把指標移動到檔案的結尾 獲取檔案長度 int len ftell pfile 獲取檔案長度 pbuf new char len 1 定義陣列長度 rewi...