檔案指針

檔案指針

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

基本介紹

  • 中文名:檔案指針
  • 外文名: file pointer
  • 定義說明形式:FILE *指針變數標識符等
  • 控制方法:定義一個流對象並指定檔案連線等
概念,定義,控制方法,使用舉例,

概念

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

使用舉例

#include<stdio.h>#include<stdlib.h>int main(int argc,char *argv[]){char buf[1024];FILE *fp=NULL;if(argc!=2){fprintf(stderr,"argumenterror\ntry%sfilename\n",argv[1]);exit(1);}if((fp=fopen(argv[1],"r"))==NULL){perror("fopen");exit(1);}while(fgets(buf,1024,fp)!=NULL)printf("%s\n",buf);fclose(fp);return 0;}~

相關詞條

熱門詞條

聯絡我們