c++文件流的问题

实现功能:用2进制方式打开已存在文件并且不覆盖原有内容,使用文件定位函数来控制写入新内容的位置。遇到问题:我用ios::app|ios::binary方式打开文件,虽然旧... 实现功能:
用2进制方式打开已存在文件并且不覆盖原有内容,使用文件定位函数来控制写入新内容的位置。
遇到问题:
我用ios::app|ios::binary方式打开文件,虽然旧内容没有被删除,但写入指针始终从文件末尾开始,seekp()失效。
我用ios::ate|ios::binary方式打开文件,虽然seekp()可用,但旧内容被删除。

vc++6.0中实验,txt文件验证。
还请大虾们多多指点迷津啊
回答1楼:
那是c的实现方式,我想用c++中的fstream流来实现。
展开
 我来答
cq6502
2008-11-22
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
当用 fstream 或 ofstream 创建一个输出文件流实例时, 为了防止原文件内容被截去, 必须在打开模式中加入 ios::in 标志, 例如:

// 方法1: 使用 fstream 创建
fstream outfile("test.txt", ios::in | ios::out);
// 方法2: 使用 ofstream 创建
ofstream outfile("test.txt", ios::in);

用以上任一种方法创建实例, 再调用 seekp() 就可以解决你的问题, 不用加入 ios::app 或 ios::ate.
archmageee4
2008-11-21 · TA获得超过1516个赞
知道大有可为答主
回答量:1581
采纳率:78%
帮助的人:927万
展开全部
用 FILE *fp=fopen("C:\\1.txt","rb+");
不行吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式