C語言 檔案操作

2021-10-16 08:26:58 字數 2782 閱讀 7180

程式檔案

包括源程式檔案(字尾為.c),目標檔案(windows環境字尾為.obj),可執行程式(windows環境字尾為.exe)。

資料檔案

檔案的內容不一定是程式,而是程式執行時讀寫的資料,比如程式執行需要從中讀取資料的檔案,或者輸出內容的檔案。

資料檔案被稱為文字檔案或者二進位制檔案。

二進位制檔案:資料在記憶體中以二進位制的形式儲存,如果不加轉換的輸出到外存。

文字檔案:如果要求在外存上以ascii碼的形式儲存,則需要在儲存前轉換。以ascii字元的形式儲存的檔案。

ansic 標準採用「緩衝檔案系統」處理的資料檔案的,所謂緩衝檔案系統是指系統自動地在記憶體中為程式中每乙個正在使用的檔案開闢一塊「檔案緩衝區」。從記憶體向磁碟輸出資料會先送到記憶體中的緩衝區,裝滿緩衝區後才一起送到磁碟上。如果從磁碟向計算機讀入資料,則從磁碟檔案中讀取資料輸入到記憶體緩衝區,然後再從緩衝區逐個將資料送到程式資料區。

檔案在讀寫之前應該先開啟檔案,在使用結束之後應該關閉檔案。在編寫程式的時候,在開啟檔案的同時,都會返回乙個file*的指標變數指向該檔案,也相當於建立了指標和檔案的

關係。

file * fopen (

const

char

* filename,

const

char

* mode )

;int fclose ( file * stream )

;

1、fread()函式

函式原型:

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

count是最多允許讀取的資料塊個數(每個資料塊size個位元組),函式返回的是實際讀到的資料塊個數

2、fwrite()函式

函式原型:

unsigned

int fwrite(const

void

*buffer,

unsigned

int size,

unsigned

int count, file *fp);

count是最多允許寫入的資料塊個數(每個資料塊size個位元組),函式返回的是實際寫入的資料塊個數

(tips:使用者指定的記憶體塊大小,最小為1位元組,最大為整個檔案)

fread()函式和fwrite()函式是按資料塊的長度來處理輸入/輸出的,在用文字編輯器開啟文字檔案時可能因發生字元轉換而出現莫名其妙的結果,所以這兩個函式通常用於二進位制檔案的輸入/輸出

3、fscanf()函式

函式原型:

int fscanf (file *fp,

const

char

*format, ……)

;

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

第乙個引數為檔案指標,第二個引數為格式控制符,第三個引數為位址參數列列,後兩個引數與函式scanf()的引數相同

4、fprintf()函式

函式原型:

int fprintf (file *fp, onst char

*format, ……);

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

第乙個引數為檔案指標,第二個引數為格式控制引數,第三個引數為輸出引數列表,後兩個引數和返回值與函式printf()相同

(用函式fscanf()和fprintf()進行檔案的格式化讀寫,讀寫方便容易理解,但輸入時要將ascii字元轉換成二進位制數,輸出時要將二進位制數轉換為ascii字元,耗時較多)

5、fgets()函式

函式原型:

char

*fgets(char

*s,int n,file *fp);

函式功能:該函式從fp所指的檔案中讀取字串並在字串末尾新增『\0』,然後存入s,最多讀n-1個字元,當讀到回車換行符、到達檔案尾或讀滿n-1個字元時,就停止讀取函式返回該字串的首位址,即指標s的值,讀取失敗返回空指標null(與gets()不同的是,fgets()從指定的流讀取字串,讀到換行符時將換行符也作為字串的一部分讀到字串中來)

6、fputs()函式

函式原型:

fputs

(_in_z_ const

char

* _str, _inout_ file * _file)

;

str是要輸出的字串,fp是檔案指標,字串末尾』\0』不輸出

函式功能:將字串輸出到指標fp所指的檔案中(與puts()不同的是,fputs()不會在寫入檔案的字串末尾加上換行符』\n』)

7、fgetc()函式

函式原型:

int fgetc (file *fp)

;

函式功能:用於從乙個以唯讀或讀寫方式開啟的檔案上讀字元,從fp所值的檔案中讀取乙個字元,並將位置指標指向下乙個字元,若讀取成功,則返回該字元,若讀取不成功則返回eof(eof是乙個符號常量,stdio.h中定義為-1)

8、fputc()函式

函式原型:

int fputc(int c, file *fp);
fp是由函式fopen()返回的檔案指標,c是要輸出的字元(儘管c定義為int型,但只寫入低位元組)

函式功能:該函式的功能是將字元c寫到檔案指標fp所指的檔案上中,若寫入錯誤返回eof,否則返回字元c

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...