首頁 > 軟體

一篇文章帶你瞭解C語言的檔案操作

2022-02-21 19:00:42

為什麼使用檔案

我們在想既然是通訊錄就應該把資訊記錄下來,只有我們自己選擇刪除資料的時候,資料才不復存在。這就涉及到了資料持久化的問題,我們一般資料持久化的方法有,把資料存放在磁碟檔案、存放到資料庫等方式。使用檔案我們可以將資料直接存放在電腦的硬碟上,做到了資料的持久化。

什麼是檔案

磁碟上的檔案是檔案。
但是在程式設計中,我們一般談的檔案有兩種:程式檔案、資料檔案(從檔案功能的角度來分類的)。

程式檔案

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

資料檔案

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

本章討論的是資料檔案。

檔名

一個檔案要有一個唯一的檔案標識,以便使用者識別和參照。

檔名包含3部分:檔案路徑+檔名主幹+檔案字尾

例如: c:codetest.txt

為了方便起見,檔案標識常被稱為檔名

檔案的開啟和關閉

檔案指標

每個被使用的檔案都在記憶體中開闢了一個相應的檔案資訊區,用來存放檔案的相關資訊(如檔案的名字,檔案狀態及檔案當前的位置等)。這些資訊是儲存在一個結構體變數中的。該結構體型別是有系統宣告的,取名FILE

例如,VS2013編譯環境提供的 stdio.h 標頭檔案中有以下的檔案型別申明:

struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;

下面我們可以建立一個FILE*的指標變數:

 FILE* pf;//檔案指標變數

定義pf是一個指向FILE型別資料的指標變數。可以使pf指向某個檔案的檔案資訊區(是一個結構體變數)。通過該檔案資訊區中的資訊就能夠存取該檔案。也就是說,通過檔案指標變數能夠找到與它關聯 的檔案。

比如:

fopen和fclose函數

//開啟檔案
FILE * fopen ( const char * filename, const char * mode );
//關閉檔案
int fclose ( FILE * stream );

使用方式:

一般來說,學會熟練操作前三個就行了

範例:

/* fopen fclose example */
#include <stdio.h>
int main ()
{
FILE * pFile;
//開啟檔案
pFile = fopen ("myfile.txt","w");
//檔案操作
if (pFile!=NULL)
{
fputs ("fopen example",pFile);
//關閉檔案
fclose (pFile);
}
return 0;
}

檔案的順序讀寫

注:使用這些函數要包含標頭檔案 <stdio.h>

總結

本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!  


IT145.com E-mail:sddin#qq.com