C語言檔案操作函式詳解

2021-10-07 02:34:09 字數 3658 閱讀 2452

三、順序讀寫資料檔案

四、用格式化的方式讀寫文字檔案

五、用二進位制方式向檔案讀寫一組資料

六.隨機讀寫資料檔案

七、檔案讀寫的出錯檢測

c語言檔案詳解

一、定義乙個指向檔案(file型別資料)的指標

指向檔案的指標變數並不是指向外部介質上的資料檔案的開頭,而是指向記憶體中的檔案資訊區的開頭。

二、開啟關閉檔案

1.打 開檔案fopen

一般都指定乙個指標變數指向該檔案,也就是建立起指標變數與檔案之間的聯絡。

file *fp;

//定義乙個指向檔案的指標變數fp

fp=fopen("a"

,"r");

//以唯讀方式開啟乙個叫做a的檔案

if

(fp=

fopen

("file1"

,"r")==

null

)//如果開啟出錯

fopen要點:

(1)需要開啟檔案的名字,如上面的a

(2) 使用檔案的方式(「讀」還是「寫」等)

(3)乙個檔案指標,用來標識該檔案

2.關閉檔案fclose

「關閉」,就是使檔案指標變數不再指向該檔案。

fclose

(fp)

;

fclose成功地執行了關閉操作,則返回值為0;否則返回eof(-1)。在使用完乙個檔案後應該關閉它,以防止它再被誤用

如果不關閉檔案就結束程式執行將可能會丟失資料。

三、順序讀寫資料檔案

1.從檔案讀乙個字元fgetc

fgetc

(fp); //成功,返回所讀字元;失敗,返回,返回檔案結束標誌:eof(即-1)

2.向檔案寫乙個字元fputc
fputc

(ch,fp); //成功,返回輸出字元;失敗,返回eof(即-1)

示例:

1.從鍵盤輸入一些字元,並逐個把它們送到磁碟上去,直到使用者輸入乙個「!」為止

2.將乙個磁碟檔案中的資訊複製到另乙個磁碟檔案中。要求將建立的file1.dat檔案中的內容複製到另乙個磁碟檔案file2.dat中。

3.從檔案讀字串fgets

從fp指向的檔案讀入乙個長度為(n-1)的字串,存放到字元陣列str中

fgets

(str,n,fp)

;//讀成功,返回位址str,失敗則返回null

//函式原型:

char

*fgets

(char

*str,

int n, file*fp)

;

4.從檔案寫字串fputs

假定str是乙個指向字串的指標,我們要把他寫入fp指向的檔案中

fputs

(str,fp)

;//輸出成功,返回0;否則返回非0值

//函式原型:

int fputs (

char

*str, file *fp)

;

四、用格式化的方式讀寫文字檔案

1.格式化寫函式fprintf

栗子:將int型變數i和float型變數f的值按%4d和%.2f的格式輸出到fp指向的檔案中

fprintf (fp,″%

4d,%

.2f″,i,f)

;

1.格式化讀函式fscanf

栗子:檔案上有字元「1,2.2」,從中讀取整數2送給整型變數i,讀取實數2.2送給float型變數f

fscanf (fp,″%d,

%f″,

&i,&f)

;

它們與printf函式和scanf函式相似,只是fprintf和fscanf函式的讀寫物件不是終端而是檔案。函式區別就是前面要加檔案指標

五、用二進位制方式向檔案讀寫一組資料

1.寫函式fwrite

fwrite

(buffer, size, count, fp)

;

2.讀函式fread
fread

(buffer, size, count, fp)

;

栗子:從fp所指向的檔案讀入10個4個位元組的資料,儲存到陣列f中

fread

(f,4,10

,fp)

;//從fp所指向的檔案讀入10個4個位元組的資料,儲存到陣列f中

示例:

使用fread,fwrite讀寫檔案

六.隨機讀寫資料檔案

不了解檔案位置等概念的朋友請看:c語言檔案:檔案位置標記及其定位

1.使檔案位置標記指向檔案開頭rewind

rewind(檔案指標);

rewind

(fp)

;

rewind函式的作用是使檔案位置標記重新返回檔案的開頭,此函式沒有返回值

2.改變檔案位置標記fseek

fseek(檔案型別指標, 位移量, 起始點);

fseek (fp,

50l,0)

;//l代表長整型,將檔案位置標記向前移到離檔案開頭50個位元組處

fseek (fp,

100l,1

);//將檔案位置標記向前移到離當前位置100個位元組處

fseek (fp,

-10l,2

);//將檔案位置標記從檔案末尾處向後退10個位元組

3.測定檔案位置標記的當前位置ftell
t=

ftell

(fp)

;//變數存放檔案當前位置

if(t==-1l

)printf

(″error\n″)

;//如果呼叫函式時出錯,輸出″error″

七、檔案讀寫的出錯檢測

1.出錯檢測 ferror(fp);

在呼叫各種輸入輸出函式(如putc,getc,fread,fwrite等)時,如果出現錯誤,除了函式返回值有所反映外,還可以用ferror函式檢查。

2.清除錯誤標誌:clearerr(fp);

ferror函式值為乙個非零值,即其他函式出錯時。應該立即呼叫clearerr(fp),使ferror(fp)的值變成0,以便再進行下一次的檢測。

c語言檔案操作詳解

什麼是檔案?磁碟上的檔案是檔案,但是在程式設計中,我們一般談的檔案有兩種 程式檔案,資料檔案。在這裡插入 片1 程式檔案 包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 windows環境字尾為.exe 2 資料檔案 檔案的內容不一定是程式,而是程式執行時讀寫的資...

檔案操作詳解(C語言)

二 檔名 三 檔案型別 四 檔案緩衝區 五 檔案指標 六 檔案的開啟和關閉 七 檔案的順序讀寫 八 檔案的隨機讀寫 九 檔案結束判定 磁碟上的檔案是檔案。但是在程式設計中,我們一般談的檔案有兩種 程式檔案 資料檔案。包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 ...

C 檔案操作函式詳解

c 通過以下幾個類支援檔案的輸入輸出 1 ofstream 寫操作,輸出檔案類 2 ifstream 讀操作,輸入檔案類 3 fstream 可同時讀寫的檔案類。1.open函式 開啟檔案 函式原型 void open const char filename,int mode,int access ...