在C語言中用一個指針變數指向一個檔案,這個指針稱為檔案指針。通過檔案指針就可對它所指的檔案進行各種操作。
基本介紹
- 中文名:檔案指針
- 外文名: file pointer
- 定義說明形式:FILE *指針變數標識符等
- 控制方法:定義一個流對象並指定檔案連線等
概念
定義
控制方法
//然後是控制指針,也就是樓主你想要的答案,
//一般是使用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;}~