更新时间:2023-10-23 16:50
在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。
头文件:
定义说明文件指针的一般形式为:
FILE *指针变量标识符;
其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。
在使用文件时,需要在内存中为其分配空间,用来存放文件的基本信息,给结构体类型是由系统定义的,C语言规定该类型为FILE型,其声明如下:
例如:
FILE *fp;
表示fp是指向FILE结构的指针变量,通过fp即可找存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,实施对文件的操作。习惯上也笼统地把fp称为指向一个文件的指针。
//然后是控制指针,也就是楼主你想要的答案,
//一般是使用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;
默认会自动过滤空格和换行
读取后文件指针会向文件末方向偏移读取的字节数