概念
頭檔案: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;
默認會自動過濾空格和換行
讀取後檔案指針會向檔案末方向偏移讀取的位元組數