C語言中的檔案操作

2021-10-04 06:12:56 字數 3243 閱讀 1997

緩衝區就是乙個記憶體區域,由於cpu讀取記憶體的速度較快,而讀取外存速度較慢,為了提高效率,就應儘量減少訪問外存的次數,由此設立了緩衝區。在讀取資料時,先將外存中的資料拷貝至記憶體(緩衝區),然後程式再由緩衝區進行資料讀取,反之,將資料放入緩衝區,然後再寫入外存。緩衝區在檔案操作的過程中起到了至關重要的作用。

檔案在讀寫之前應該先開啟檔案,在使用結束之後應該關閉檔案,在開啟檔案的同時,會返回乙個file* 的指標變數指向該檔案,也相當於建立了指標和檔案的關係。fopen函式和fclose函式在開啟或關閉檔案失敗時,都會返回乙個空指標null。

file*

fopen

(const

char

* filename,

const

char

* mode)

;int

fclose

(file* stream)

;//fopen函式和fclose函式

對於fopen函式,它的第乙個引數是檔名,在傳參時應輸入檔案的絕對路徑或相對路徑,第二個引數是檔案的使用方式,具體如下。

檔案使用方式

含義如果指定檔案不存在

「r」(唯讀)

為了輸入資料,開啟乙個已經存在的文字檔案

出錯「w」(只寫)

為了輸出資料,開啟乙個文字檔案

建立乙個新的檔案

「a」(追加)

向文字檔案尾新增資料

出錯「rb」(唯讀)

為了輸入資料,開啟乙個二進位制檔案

出錯「wb」(只寫)

為了輸出資料,開啟乙個二進位制檔案

建立乙個新的檔案

「ab」(追加)

向乙個二進位制檔案尾新增資料

出錯「r+」(讀寫)

為了讀和寫,開啟乙個文字檔案

出錯「w+」(讀寫)

為了讀和寫,建議乙個新的檔案

建立乙個新的檔案

「a+」(讀寫)

開啟乙個檔案,在檔案尾進行讀寫

建立乙個新的檔案

「rb+」(讀寫)

為了讀和寫開啟乙個二進位制檔案

出錯「wb+」(讀寫)

為了讀和寫,新建乙個新的二進位制檔案

建立乙個新的檔案

「ab+」(讀寫)

開啟乙個二進位制檔案,在檔案尾進行讀和寫

建立乙個新的檔案

需要注意的是,在使用fopen和fclose函式是,需要對返回值進行判空,以避免檔案開啟失敗卻又繼續執行程式的情況。

使用fgetc來讀取乙個字元,使用fputc來輸出乙個字元

int

fgetc

( file* stream )

;//字元輸入函式

intfputc

(int c, file* stream )

;//字元輸出函式

//示例

int c;

while

(c =

fgetc

(stdin)!=

eof)

//當返回值為eof時表示讀取到檔案結束符

//stdin:標準輸入,從鍵盤輸入到緩衝區

//stdout:標準輸出,輸出到螢幕

使用fgets讀取一行內容,使用fputs寫入一行內容

char

*fgets

(char

* string,

int n, file* stream )

;//三個引數分別是讀取之後存放的位置,讀取多少個位元組,檔案指標

intfputs

(const

char

* string, file* stream )

;//兩個引數分別是緩衝區位址和檔案指標

//示例

char buf[

1024]=

;//緩衝區

while

(fgets

(buf,

sizeof

(buf)-1

, fp)

!=null

)

格式化的讀寫方式,用法類似scanf和printf

int

fscanf

( file *stream,

const

char

*format [

, argument ]..

.);int

fprintf

( file *stream,

const

char

*format [

, argument ]..

.);//示例

char buf[

1024]=

;fscanf

(fp,

"%s"

, buf)

;fprintf

(stdout

,"%s"

, buf)

;

使用fread讀取n個位元組,使用fwrite寫入n個位元組

size_t fread

(void

*buffer, size_t size, size_t count, file *stream )

;//返回值為實際讀取到的元素個數。實際讀取到的元素個數如果比預期的少,說明檔案讀取完畢

//引數分別為,緩衝區位址,每次讀取的位元組數,要寫入快取區的最大位元組數,檔案指標

size_t fwrite

(const

void

*buffer, size_t size, size_t count, file *stream )

;//引數含分別為緩衝區位址,每次寫入的位元組數,最大寫入位元組數,檔案指標

//示例

char buf[

1024]=

;int n =

fread

(buf,1,

sizeof

(buf)-1

, fp)

;//減去一是為了留下『\0』的位置

fwrite

(buf,1,

strlen

(buf)

,stdout

);

在檔案的操作這一方面,各種程式語言的操作方式都大同小異,需要先開啟檔案,進行讀寫,最後關閉檔案,需要注意的就是在開啟檔案後記得要關閉,否則可能會導致檔案出錯。

C語言中的檔案操作

include file fopen const char path,const char mode path表示檔案路徑,mode表示檔案使用方式 int fclose file pf 成功關閉返回0,否則返回eof,並且將錯誤記錄在系統全域性變數errno中 從stream當前位置讀取乙個字元 ...

C語言中的檔案操作

本次詳細介紹c下檔案的各種api.1 開啟檔案 file fopen const char filename,const char mode 返回檔案控制代碼,非null為正確開啟。2 關閉檔案 int fclose file stream 例子 file psrc fopen data5610.t...

C語言中的檔案操作

一 檔案 檔案 file 一般指儲存在外部介質上資料的集合,從不同的角度可對檔案作不同的分類。根據儲存規則可以將其分為 mp4 txt bmp jpg exe rmvb等檔案。從使用者的角度看,檔案可分為普通檔案和裝置檔案兩種 普通檔案是指駐留在磁碟或其它外部介質上的乙個有序資料集 裝置檔案是指與主...