檔案指針

檔案指針

在C語言中用一個指針變數指向一個檔案,這個指針稱為檔案指針。通過檔案指針就可對它所指的檔案進行各種操作。

概念

頭檔案:fstream.h:檔案輸入輸出流

定義

定義說明檔案指針的一般形式為:

FILE *指針變數標識符;

其中FILE應為大寫,它實際上是由系統定義的一個結構,該結構中含有檔案名稱、檔案狀態和檔案當前位置等信息。在編寫源程式時不必關心FILE結構的細節。

在使用檔案時,需要在記憶體中為其分配空間,用來存放檔案的基本信息,給結構體類型是由系統定義的,C語言規定該類型為FILE型,其聲明如下:

typedef struct

{

short level;

unsigned flags;

char fd;

unsigned char hold;

short bsize;

unsigned char *buffer;

unsigned ar *curp;

unsigned istemp;

short token;

}FILE;

例如:

FILE *fp;

表示fp是指向FILE結構的指針變數,通過fp即可找存放某個檔案信息的結構變數,然後按結構變數提供的信息找到該檔案,實施對檔案的操作。習慣上也籠統地把fp稱為指向一個檔案的指針。

控制方法

fstream streamObject("example.txt");//首先定義一個流對象,並指定一個檔案連線:
//然後是控制指針,也就是樓主你想要的答案,
//一般是使用seekg函式來控制檔案的指針:
//打開後默認是指向檔案開頭
//因此打開後有沒有下面這句代碼是一樣的,下面的代碼表示指向檔案開頭
streamObject.seekg(ios::beg);//指向開頭(和streamObject.seekg(0,ios::beg)效果是一樣的)
streamObject.seekg(ios::end);//指向末尾:
streamObject.seekg(10,ios::cur); //讓檔案指針從當前位置向檔案末方向移動10個位元組
streamObject.seekg(-10,ios::cur); //讓檔案指針從當前位置向檔案開始方向移動10個位元組
streamObject.seekg(10,ios::beg); //讓檔案指針定位到離檔案開頭10個位元組的位置
...以此類推
讀取檔案指針當前指向的數據的方式是這樣的:
比如讀取int:
int i;
streamObject>>i;
讀取字元串:
string str;
streamObject>>str;
默認會自動過濾空格和換行
讀取後檔案指針會向檔案末方向偏移讀取的位元組數

使用舉例

相關詞條

熱門詞條

聯絡我們