c++写文件问题,如何写文件的时候,在文件头部加入想要的内容而不覆盖原有字节?我现在用WRITE不行啊,

fstreamg("c:\\123",ios::binary|ios::out);g.seekg(0,ios::beg);//在文件头部加g.write(reinterp... fstream g("c:\\123",ios::binary|ios::out);
g.seekg(0,ios::beg);//在文件头部加
g.write(reinterpret_cast<char *>(&bmpHeader),sizeof(bmpHeader));//发现执行多次后文件并没有变长,而是覆盖内容
如何添加内容,谢谢
展开
 我来答
空雪梦见
2013-07-22 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1163万
展开全部
没有直接的办法。
你可以先seek到文件尾,然后获取位置(实际上这一步是获取文件长度)
然后seek到文件头,申请和文件大小相同的内存空间,然后把文件内容全部读出来
然后seek到文件头,写入你要写入的部分
最后把刚刚“全部读出来”的给写回去。

另:如果要用我叙述的方法,以ios::out方式打开会死

p.s. 看你的代码,你是想要把只含有原始像素点颜色数据的文件给搞成bmp文件?w
追问
en,有什么建议
追答
没什么建议。以我的知识能力范围就只能这么做。
先全部读出来,再写入头,再写入原来的数据。
这玩意儿不是链表,随便就可以在表头添加数据。
这玩意儿你要当作数组
jeak_yang
2013-07-22 · TA获得超过469个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:172万
展开全部
没有在文件中插入那种函数,你可以新建一个文件先吧文件头写入,在读出第二个文件的内容写入刚才新建的文件里面。恩,只能这么办!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a6_gesture
2013-07-22 · TA获得超过108个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:89.9万
展开全部
教你个简单的
FILE *file = fopen("D://123.TXT","at");
fprintf(file,“写入内容测试”);
fclose(file);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式