一篇文章帶你瞭解C語言的文件操作
為什麼使用文件
我們在想既然是通訊錄就應該把信息記錄下來,隻有我們自己選擇刪除數據的時候,數據才不復存在。這就涉及到瞭數據持久化的問題,我們一般數據持久化的方法有,把數據存放在磁盤文件、存放到數據庫等方式。使用文件我們可以將數據直接存放在電腦的硬盤上,做到瞭數據的持久化。
什麼是文件
磁盤上的文件是文件。
但是在程序設計中,我們一般談的文件有兩種:程序文件、數據文件(從文件功能的角度來分類的)。
程序文件
包括源程序文件(後綴為.c),目標文件(windows環境後綴為.obj),可執行程序(windows環境後綴為.exe)。
數據文件
文件的內容不一定是程序,而是程序運行時讀寫的數據,比如程序運行需要從中讀取數據的文件,或者輸出內容的文件。
本章討論的是數據文件。
文件名
一個文件要有一個唯一的文件標識,以便用戶識別和引用。
文件名包含3部分:文件路徑+文件名主幹+文件後綴
例如: c:\code\test.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>
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!