c基礎 之 檔案及其操作

2021-07-26 11:32:10 字數 3577 閱讀 6512

首先要定義乙個檔案指標型別,格式為 file *檔案指標名; ;

file *fp;  //

fp就是定義的檔案指標

●開啟檔案fopen()函式,格式: fp = fopen("

檔名", "

開啟方式

");

fp = fopen("

c:\\myfile

", "

r"); //

開啟方式下文會講到

檔名中不允許直接使用路徑描述符 "\",必須用轉義字元的形式 "\\"。"\\" 中第乙個 "\" 是轉義字元,第二個表示路徑描述符。

●關閉檔案fcolse()函式,格式: fclose(檔案指標);

fclose(fp);

功能:正常完成關閉檔案操作時fclose返回0,否則返回eof(值為-1),表示有錯誤發生。

●開啟檔案的方式:

"rb", "wb", "ab", "rb+", "wb+", "ab+"  :這六種開啟二進位制檔案

"r"開啟乙個文字檔案,可以讀取檔案

"w"開啟乙個文字檔案,可以寫入檔案,先將檔案的長度截為0。如果該檔案不存在則先建立

"a"開啟乙個文字檔案,可以寫入檔案,向已有檔案的尾部追加內容,如果該檔案不存在則先建立

"r+"

開啟乙個文字檔案,可以進行更新(讀取和寫入),也即可以讀取和寫入檔案

"w+"

開啟乙個文字檔案,可以進行更新(讀取和寫入),如果該檔案存在則首先將其長度截為0,如果該檔案不存在則先建立

"a+"

開啟乙個文字檔案,可以進行更新(讀取和寫入),向已有檔案的尾部追加內容,如果該檔案不存在則先建立;可以讀取整個檔案,但寫入時只能追加內容。

"rb", "wb", "ab", "rb+", "wb+", "ab+", "r+b", "w+b", "a+b"

與前面的模式相似,只是使用二進位制而非文字模式開啟檔案

注意:如果用"w"模式開啟任意乙個檔案,檔案內容將刪除,以便程式以乙個空檔案開始操作。

●檔案結束的判定feof()函式,格式: feof(檔案指標)

這裡舉乙個例子幫助理解:

while(!feof(fp))   //

我們已在檔案的末尾加上結束標誌-1

//此段程式的含義是:當為!feof(fp)為1,從當前位置讀入乙個位元組的資料賦給字元型變數c,指當遇到檔案結束標誌時,feof(fp)的值為1,feof(fp)為0,迴圈結束

feof()函式功能:測試檔案指標所指向的文錦啊內部讀寫位置指標是否到達檔案尾。當檔案結束時返回1,否則返回0。

1.字元,字串的讀寫

寫字元函式fputc,功能:把乙個字元寫入此盤檔案中,若輸出成功,則返回輸出的字元,否則返回eof。格式:

fputc(ch, fp);   //

將字元ch的值輸出到fp所指向的檔案中

ch:要輸出的字元,可以是字元常量,也可以是字元變數。

讀字元函式fgetc,功能:從指定檔案讀入乙個字元,該檔案必須是以讀或讀寫方式開啟的,若讀取成功返回讀取的字元,否則返回eof。格式:

ch = fgetc(fp);  //

讀取成功返回字元賦值給ch

寫字串函式fputs,格式: fputs("

字串", 檔案指標);     功能:向指定的檔案寫入一串字元,寫入成功返回0,否則返回非0值。

fputs("

welcome to my blog

", fp);

注意:fputs函式將寫入檔案的字串中的空字元去掉,ptus函式將空字元換成換行字元輸出。

讀字串函式,格式: fgets(字串, n, fp);      功能:從fp指向的檔案讀入n-1個字元存放第乙個引數中,如果遇到換行符或eof,則結束。

fgets(str, n, fp); //

str 為字元陣列。從fp指向的檔案讀入n-1個字元存放到str陣列中

2.資料塊的讀寫

資料塊寫檔案函式fwrite(),格式:

fwrite(buffer, size, count, fp);

size:每次要寫的位元組數

count:寫入多少個size大小的資料項

注意:完成寫操作(fwrite())後必須關閉檔案(fclose())

資料塊的讀檔案函式fread(),格式:

fread(buffer, size, count, fp);

count:讀入多少個size大小的資料項

3.格式化讀/寫檔案函式

讀檔案fprintf(),格式: fprintf(檔案指標,"

格式控制

",輸出列表);

fprintf(fp,"

%d, %d

",a, b); //

將a,b寫入fp指向的檔案中

注意:fprintf()函式總是將輸出項在記憶體中的表示形式按指定的格式轉換成字串形式,再寫入到指定的檔案中。

寫檔案fscanf(),格式: fscanf(檔案指標,"

格式控制

",位址列表);

fprintf(fp,"

%d, %d

",&a, &b); //

將fp指向的檔案中的資料讀出並存放於a,b

注意:fscanf()函式從檔案中讀出的資料一定是按字串形式(文字形式)存在的。

●rewind()函式,格式: 

rewind(檔案指標);     功能:使檔案指標的讀寫位置重新返回到檔案的開頭。

rewind(fp);

●fseek()函式,格式: 

fseek(檔案指標, 位移量w, 起始點s);     功能:使檔案指標移到距起始點偏移w個位元組處。

fseek(fp, 2, 0);  //

使檔案指標移到距起始點0偏移2個位元組數

w:當w為正數時表示向檔案尾方向移動,為負數時表示向檔案頭移動,為0表示不移動。

s:可以為0,1,2;s=0表示檔案頭,s=0表示當前位置,s=0表示檔案末尾。

●ftell()函式,格式: 

ftell(檔案指標);     功能:得到流式檔案中的當前位置,用相對與檔案開頭的位移量來表示。若ftell()函式返回-1l表示出錯。 

i = ftell(fp); //

存放當前位置給變數i

if(i == -1l

) printf(

"error\n

"); //

若呼叫的函式出錯(如不存在此檔案),則輸出error

常用的檔案檢測函式有兩個 ferror()和clearerr()

ferror()函式,功能:若ferror()函式的返回值為0,則表示未出錯,非0表示出錯。格式:

ferror(fp)

clearerr()函式,功能:使檔案錯誤標誌和檔案結束標誌置為0。格式:

clearerr(fp)

20170104完

c語言程式設計基礎之檔案操作

檔案使用方式 意義 rt 唯讀開啟乙個文字檔案,只允許讀資料 wt 只寫開啟或建立乙個文字檔案,只允許寫資料 at 追加開啟乙個文字檔案,並在檔案末尾寫資料 rb 唯讀開啟乙個二進位制檔案,只允許讀資料 wb 只寫開啟或建立乙個二進位制檔案,只允許寫資料 ab 追加開啟乙個二進位制檔案,並在檔案末尾...

c語言程式設計基礎之檔案操作(二)

資料塊讀寫函式fread和fwtrite 語言還提供了用於整塊資料的讀寫函式。可用來讀寫一組資料,如乙個陣列元素,乙個結構變數的值等。讀資料塊函式呼叫的一般形式為 fread buffer,size,count,fp 寫資料塊函式呼叫的一般形式為 fwrite buffer,size,count,f...

Python基礎之檔案操作

python的檔案操作還是比較簡單的基本分為三步 開啟,讀寫,關閉 檔案開啟 f open db r 開啟 f.read 讀 f.close 關閉 為了避免程式設計師忘記最後一步關閉,優雅的python使用了以下語句 with open db r as f,open db2 r as f2 opra...