社区
非技术区
帖子详情
C++怎样用seekp修改文件里指定的内容
qtion
2012-04-02 05:11:40
举个例子,我之前在文件里写入了一些数据,这些数据都放在一个结构体,然后怎样才能实现把里面的数据进行修改呢?哪位高手可以发个例子看看吗?谢谢
...全文
200
2
打赏
收藏
C++怎样用seekp修改文件里指定的内容
举个例子,我之前在文件里写入了一些数据,这些数据都放在一个结构体,然后怎样才能实现把里面的数据进行修改呢?哪位高手可以发个例子看看吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qtion
2012-04-02
打赏
举报
回复
不是很明白,能举得例子吗?
www_adintr_com
2012-04-02
打赏
举报
回复
把结构体读到内存中,修改,完了重新写文件。
c++
文件
输出流如何实现既不删除原
文件
内容
又能使用
seekp
进行
修改
指定
位置
内容
使用ios::app的话,只能在末尾添加
内容
,且
seekp
方法会失效。在MSDN
里
搜索“openmode method”可以查到:app, to seek to the end of a stream before each insertion.也就说以app方式打开
文件
的时候,每次插入前,
文件
指针会自动移动到末尾,
seekp
方法无效。要想达到题目要求,用ofstream是不行的,必须用fstre...
C++
修改
/覆盖
指定
位置的
文件
内容
或者从某个位置开始截断
文件
最新在进行
文件
方面的功能开发。遇到个这样的问题:(1)
文件
读到中间,然后进行一些
修改
,(2)然后将
文件
从
修改
后的地方截断。本以为这是个简单的操作,却花费了好大的功夫(网上并没有这样的例子,一通尝试)。现在终于圆满解决了,特地记录一下,方便后来人。 1.
修改
/覆盖
指定
位置的
文件
内容
【ps】下文一直提到
文件
中间区域位置,就是指非
文件
开头和结尾的位置。为什么强调这个呢?因为开头和结尾就是很常规的就...
【贪玩巴斯】C/
C++
文件
IO流操作的
seekp
和seekg详解
文件
流对象有两个成员函数,分别是
seekp
和 seekg。 它们可以用于将读写位置移动到
文件
中的任何字节。 一、如何来记这几个函数呢 seek 是寻找 寻求的意思 2. tell 是告诉 告知的意思 那 p 即put 放和输出的意思,在这
里
是保存到
文件
那 g 即get 是获取,读入的意思,在这
里
是从
文件
读取 所以
seekp
可用于将信息 put(放入 写入)到
文件
中 2. seekg 则可用于从
文件
中 get(获取)信息。 tellg()函数不需要带参数,它返回当前定位指针的位置,也代
C++
对于
文件
的操作(3)——更改
文件
指定
位置的数据(在新旧数据长度一致的情况下)
如果需要对于
文件
的某一个位置(或者是某一段位置)进行
修改
(前提是大小长度一致,这点一定要注意),一个可行的方法就是定位到需要改的地方,然后直接替换,然后重写这段数据。 这
里
面需要用到的就是定位函数,和瞬移函数(`・ω・´),主要是tellg,tellp,seekg,
seekp
,这四个函数的具体的使用详见文章末尾的参考链接,这
里
只简单进行说明一下,tellg和tellp是用来获得
文件
句柄额当前位置的,而
seekp
、seekg是将
文件
句柄跳跃到具体的位置的。 ifstream 类和 fstream 类有 s
C++
cout.tellp()和cout.
seekp
()方法详解
C++
cout.tellp()和cout.
seekp
()方法详解 通过前面章节的学习我们知道,无论是使用 cout 输出普通数据,用 cout.put() 输出
指定
字符,还是用 cout.write() 输出
指定
字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到
指定
位置(屏幕或者
文件
中)。 值得一提的是,当数据暂存于输出流缓冲区中时,我们仍可以对其进行
修改
。ostream 类中提供有 tellp() 和
seekp
() 成员方法,借助它们就可以
修改
位于输出流缓冲区中的数据。
C++
tell
非技术区
15,440
社区成员
58,167
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章