一篇文章帶你瞭解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的更多內容!  

推薦閱讀: