C++ fstream类移动读写指针和字节数形式获取该指针位置(seekp、seekg、tellg、tellp)
参考链接 C++移动和获取文件读写指针(seekp、seekg、tellg、tellp)
1、利用seekp、seekg成员函数控制读写指针位置
在读写文件时,有时希望直接跳到文件中的某处开始读写,这就需要先将文件的读写指针指向该处,然后再进行读写。
ifstream 类和 fstream 类有 seekg 成员函数,可以设置文件读指针的位置;
ofstream 类和 fstream 类有 seekp 成员函数,可以设置文件写指针的位置。
所谓“位置”,就是指距离文件开头有多少个字节。文件开头的位置是 0。
这两个函数的原型如下:
ostream & seekp (int offset, int mode);
istream & seekg (int offset, int mode);
mode 代表文件读写指针的设置模式,有以下三种选项:
ios::beg:让文件读指针(或写指针)指向从文件开始向后的 offset 字节处。offset 等于 0 即代表文件开头。在此情况下,offset 只能是非负数。
ios::cur:在此情况下,offset 为负数则表示将读指针(或写指针)从当前位置朝文件开头方向移动 offset 字节,为正数则表示将读指针(或写指针)从当前位置朝文件尾部移动 offset字节,为 0 则不移动。
ios::end:让文件读指针(或写指针)指向从文件结尾往前的 |offset|(offset 的绝对值)字节处。在此情况下,offset 只能是 0 或者负数。
2、利用 tellg、tellp 成员函数以字节数形式返回读写指针位置
ifstream 类和 fstream 类还有 tellg 成员函数,能够返回文件读指针的位置;
ofstream 类和 fstream 类还有 tellp 成员函数,能够返回文件写指针的位置。
这两个成员函数的原型如下:
int tellg();
int tellp();
要获取文件长度,可以用 seekg 函数将文件读指针定位到文件尾部,再用 tellg 函数获取文件读指针的位置,此位置即为文件长度。
C++ fstream类移动读写指针和字节数形式获取该指针位置(seekp、seekg、tellg、tellp)相关推荐
- C语言中 指针变量 取地址符的用法 *指针变量名的用法
文章目录 总结 Intro Code 图示 总结 众所周知,内存可以看成一个一个相邻的格子(类比Excel),而数据就存储于这些格子之中(size大的变量占用格子数多,size小就占用小).而每个格子 ...
- C++文件流:myfstream,fstream,文件读写,随机文件读写【C++文件流】(59)
文件流 myfstream fstream Test myfstream fstream 流对象的定义 流对象关联文件 open 函数 打开方式 关闭流对象 文件读写 读写文本文件 读写接口 读一字/ ...
- 如何使用 fstream 类进行文件的 I/O 处理
概述 大多数 C++ 程序员都熟悉不止一个文件 I/O 库.首先是传统的 Unix 风格的库,它由一些低级函数如 read() 和 open()组成.其次是 ANSI C 的 <stdio.h& ...
- C++读写文件操作(fstream、ifstream、ofstream、seekg、seekp、tellg、tellp用法)
本文主要总结用C++的fstream.ifstream.ofstream方法读写文件,然后用seekg().seekp()函数定位输入.输出文件指针位置,用tellg().tellp()获取当前文件指 ...
- 一个有关fstream类的bug
一个有关fstream类的bug 近日写程序需要读出文件,对读出的内容作些修改,再写回到文件中. 突然发现一个莫名其妙的问题,写回去的时候居然在文件末尾增加了几个字 符.感到很不可思议.具体代码如下: ...
- python 类 文件读写与模块
初始化类的属性 def __init__(self,name): #self不能省self.name=name 注意:在定义类方法时,self不能省 继承 class 子类名(父类名): class ...
- C++类占字节数讲解
空类的情况 示例代码: class B{};int _tmain(int argc, _TCHAR* argv[]) {cout << sizeof(B) << endl; / ...
- C#Binary类二进制文件读写转换
需要创建BinaryWriter类对象 进行写入 需要创建BinaryReader类对象 进行读取 需要创建两个FileStream类对象 进行读 和写 代码如下 <====> C# Ja ...
- 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...
下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...
最新文章
- OpenCV在ARM上的移植
- CleanAOP实战系列--WPF中MVVM自动更新
- 警告:failed to load the sqljdbc_auth.dll cause no sqljdbc_auth in java.library.path
- MYSQL timestamp NOT NULL插入NULL的报错问题
- vc6.0转vs2005中字符串的问题
- Go gin web框架介绍
- 你所能用到的数据结构(四)
- pyqt5-步长调节器
- js判断页面点击事件
- Python实现中文文档的简体与繁体互相转换
- 《C++标准程序库》学习笔记(一)C++相关特性
- 100 道 Linux 笔试题,能拿90分以上的都去了BAT
- 公式中的引号怎么输_Excel计数函数中这些奇怪的参数让我百思不得其解!
- 正则表达式 常用实例 22/10/12
- 1 12c语言,1.4.1 Oracle数据库12c中PL/SQL的新特性
- Flutter图片宽高获取
- Mac m1 安装php redis扩展
- win2003 启用了Internet Explorer增强的安全配置
- Android字节码插桩
- 网页制作怎么入服务器,网站后台是怎么做的 如何进入网站后台