C語言檔案操作

2021-10-24 05:41:26 字數 3168 閱讀 9528

file *指標變數名   例:file *fp;
1)"r".為讀而開啟文字檔案.(不存在則出錯)

2)"rb".為讀而開啟二進位制檔案.

3)"w".為寫而開啟文字檔案.(若不存在則新建,反之,則從檔案起始位置寫,原內容將被覆蓋)

4)"wb".為寫而開啟二進位制檔案.

5)"a".為在檔案後面新增資料而開啟文字檔案.(若不存在,則新建;反之,在原檔案後追加)

6)"ab".為在檔案後面新增資料而開啟乙個二進位制檔案.

7)"r+".為讀和寫而開啟文字檔案.(讀時,從頭開始;在寫資料時,新資料只覆蓋所佔的空間,其後不變)

8)"rb+".為讀和寫而開啟二進位制檔案.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.

9)"w+".首先建立乙個新檔案,進行寫操作,隨後可以從頭開始讀.(若檔案存在,原內容將全部消失)

10)"wb+".功能與"w+"同.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.

11)"a+".功能與"a"相同;只是在檔案尾部新增新的資料後,可以從頭開始讀.

12)"ab+".功能與"a+"相同;只是在檔案尾部新增新資料之後,可以由位置函式設定開始讀的起始位置.

開啟檔案:

fopen(檔名,檔案使用方式);

此函式返回乙個指向file型別的指標,呼叫成功返回指標,

否則返回null,一般使用要進行測試是否==null.

例:file *fp;

fp = fopen("file","r");

關閉檔案:

fclose(檔案指標);

成功關閉,fclose返回0,否則返回eof(-1);

(如果流為null,而且程式可以繼續執行,fclose設定error number給einval,並返回eof。)

例:file *fp; int a;

a = fopen(fp);

輸入輸出函式:

1)輸出乙個字元:   

putc(ch,fp);或fputc(ch,fp);

輸出成功返回 ch 字元,否則返回eof(-1);

2)輸入乙個字元:

ch = getc(fp);或fgetc(fp);

從pf指定的檔案中讀取乙個字元並返回;

判斷檔案結束函式:

feof(fp);

如果檔案結束,則返回非0值,否則返回0

格式輸入函式:

fscanf(檔案指標,格式控制符串,輸入項表);

和scanf函式相似,不同點在於它輸入的物件是磁碟上文字檔案中的資料

例如:fscanf(fp,"%d%d",&a,&b); == scanf("%d%d",&a,&b);

格式輸出函式:

fprintf(檔案指標,格式控制符串,輸入項表);

和printf函式相似,不同點在於它將輸出的內容按格式存放到磁碟的文字檔案中

例如:fprintf(fp,"%d %d",x,y); == printf("%d %d",x,y);

字串讀取函式(讀取檔案返回字串):

fgets(str,n,fp);

從fp所指檔案中讀入n-1個字元放入str為起始位址的空間內,如果在未讀滿n-1個字元時,

則遇到換行符或乙個eof結束本次讀操作,並將str作為函式值返回.

字串輸出函式(輸出字串到檔案):

fputs(str,fp);

功能:把str字串讀入到fp所指的檔案中。函式返回乙個非負值,如果發生錯誤則返回 eof(-1)。

物件輸入函式(寫入檔案):

size_t fwrite(const void *ptr, size_t size, size_t nmemb, file *stream);

功能:把ptr所指向的陣列中的資料寫入到給定流stream中。

引數:ptr:指向要被寫入的元素陣列的指標。

size:要被寫入的每個元素的大小,以位元組為單位。

返回:nmemb:元素的個數,每個元素的大小為 size 位元組。

stream: 指向 file 物件的指標,該 file 物件指定了乙個輸出流。

物件讀取函式(讀取檔案):

size_t fread( void *restrict buffer, size_t size, size_t count, file *restrict stream );

功能:從給定輸入流stream讀取最多count個物件到陣列buffer中(相當於以對每個物件呼叫size次fgetc),

把buffer當作unsigned char陣列並順序儲存結果。流的檔案位置指示器前進讀取的位元組數。

引數:buffer:指向要讀取的陣列中首個物件的指標

size: 每個物件的大小(單位是位元組)

count: 要讀取的物件個數

stream: 輸入流

檔案定位函式

pf:  檔案指標

offset: 以位元組為單位的位移量,為長整形.

origin: 是起始點,用來指定位移量是以哪個位置為基準的.

1) fsee(pf,offset,origin);

功能:移動檔案位置指標到指定的位置上,接著的讀或寫操作將從此位置開始。

seek_set 0 檔案開始

seek_end 2 檔案末尾

seek_cur 1 檔案當前位置

2) ftell(pf);

功能:獲得檔案當前位置指標的位置,給出當前位置指標相對於檔案開頭的位元組數。

出錯時,函式返回-1l

例:測檔案長度 long t;

fseek(fp,0l,seek_end);

t=ftell(fp);

3)rewind(pf);

無返回值,使檔案的位置指標回到檔案開頭。

c語言檔案操作

rt null ch fgetc fp while ch eof fclose fp 本 例程式的功能是從檔案中逐個讀取字元,在螢幕上顯示。程式定義了檔案指標fp,以讀文字檔案方式開啟檔案 d jrzh example ex1 1.c 並使fp指向該檔案。如開啟檔案出錯,給出提示並退出程式。程式第1...

C語言檔案操作

1.首先要理解幾個概念 檔案 按一定規則儲存在磁碟上的資料集合。檔名 能唯一標識某個磁碟檔案的字串。形式 碟符 路徑 檔名.副檔名 二進位制檔案 資料以二進位制形式在儲存在磁碟上。裝置檔案 輸入 輸出裝置 標準輸入檔案 鍵盤 標準輸出檔案 標準錯誤輸出檔案 顯示器 檔案型指標 c語言是通過名為fil...

C語言檔案操作

1,兩種檔案訪問方式 輸入,輸出方式 順序訪問 直接訪問 2,資料的兩種存放形式 文字檔案 二進位制檔案 3.檔案指標 定義檔案型別指標變數的一般形式 file 指標變數名 例如 file fp1,fp2 4.開啟檔案 在使用檔案之前,需開啟檔案.在c裡使用fopen函式開啟檔案.格式為 fopen...