C++文件的随机访问
来源:互联网 发布:兰州知豆租赁官网 编辑:程序博客网 时间:2024/05/11 21:39
在C++中可以由程序控制文件指针的移动,从而实现文件的随机访问,即可读写流中任意一段内容。
一般文本文件很难准确定位,所以随机访问多用于二进制文件。如【例9.9】中对象中两个字符串是按实际串长存放的,不是按数组元素来存放的,而【例9.10】中是按数组长度来存放的,每个对象数据长度固定,所以便于随机访问。
随机访问指针控制字
在ios类中说明了一个公有枚举类型:
enum seek_dir
{
beg=0, //文件开头
cur=1, //文件指针的当前位置
end=2 //文件结尾
};
设置“输入流指针控制字”的成员函数
设置“输入流指针控制字”的成员函数:
istream&istream::seekg(streampos); //指针直接定位
istream&istream::seekg(streamoff, ios::seek_dir); //指针相对定位
long istream::tellg(); //返回当前指针位置
流的指针位置类型streampos和流的指针偏移类型streamoff定义为长整型,也就是可访问文件的最大长度为4G。例:
datafile.seekg(-20L,ios::cur);
//表示将文件定位指针从当前位置向文件头部方向移20个字节。
datafile.seekg(20L,ios::beg);
//表示将文件定位指针从文件头向文件尾方向移20个字节。
datafile.seekg(-20L,ios::end);
//表示将文件定位指针从文件尾向文件头方向移20个字节。
tellg()和seekg()往往配合使用。
//指针不可移到文件头之前或文件尾之后。
设置“输出流指针控制字”的成员函数
设置“输出流指针控制字”的成员函数:
ostream&ostream::seekp(streampos);
ostream&ostream::seekp(streamoff,ios::seek_dir);
long ostream::tellp();
为了便于记忆,函数名中g是get的缩写,而p是put的缩写。对输入输出文件定位指针只有一个但函数有两组,这两组函数功能完全一样。
举例
【例9.11】使用随机访问对【例9.10】进行改造。(查看源码)
- C语言的文件随机访问fseek()和ftell()函数
- C++文件的随机访问
- 9.6 文件-文件的随机访问
- RandomAccess随机访问文件的小例子
- 如何随机访问文件
- 随机访问文件
- RandomAccessFile 随机访问文件
- 读写随机访问文件
- 随机访问文件RandomAccessFil
- java随机访问文件
- 文件的随机访问与多文件项目
- C/C++文件的随机读取
- C语言文件的随机读写
- 127 C语言文件的随机读写
- C语言文件的随机读写
- 随机访问文件类RandomAccessFile
- 随机访问文件类RandomAccessFile
- 随机访问文件类RandomAccessFile
- Linux(centos7) 源码安装cmake
- linux常用命令
- Java操作XML的工具:JAXB
- java接口回调
- deeplearning的wake-sleep算法
- C++文件的随机访问
- Ubuntu 将其他盘挂载到/home的子目录下及其权限问题
- 关联规则FpGrowth算法
- 自学UI设计学不会的症结在哪里
- android zram内存压缩的优缺点
- c++虚基类在内存中的分布
- 卷地风来忽吹散,积得飘零美如画(深度学习入门系列之十)
- 币圈真假孙悟空之争:比特币被山寨版打压价格大跌
- 关于ANSYS坐标系