永发信息网

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

答案:3  悬赏:80  手机版
解决时间 2021-02-19 17:56
fstream g("c:\\123",ios::binary|ios::out);
g.seekg(0,ios::beg);//在文件头部加
g.write(reinterpret_cast(&bmpHeader),sizeof(bmpHeader));//发现执行多次后文件并没有变长,而是覆盖内容
如何添加内容,谢谢
最佳答案
没有直接的办法。
你可以先seek到文件尾,然后获取位置(实际上这一步是获取文件长度)
然后seek到文件头,申请和文件大小相同的内存空间,然后把文件内容全部读出来
然后seek到文件头,写入你要写入的部分
最后把刚刚“全部读出来”的给写回去。

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

p.s. 看你的代码,你是想要把只含有原始像素点颜色数据的文件给搞成bmp文件?w
全部回答
你好! 教你个简单的 FILE *file = fopen("D://123.TXT","at"); fprintf(file,“写入内容测试”); fclose(file); 打字不易,采纳哦!
没有在文件中插入那种函数,你可以新建一个文件先吧文件头写入,在读出第二个文件的内容写入刚才新建的文件里面。恩,只能这么办!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农友农资地址在什么地方,想过去办事
E丅C龙卡额度
厨房烟道止逆阀怎么选?
安徽旭日机电工程有限公司这个地址在什么地方
关于脱水药特点的叙述,错误的是()A.易经肾小
单选题Ihavebattledwithmy________whet
一本书,小红第一天看了全书的4分之一,第二天
宝宝三个多月,长时间鼻塞看不到鼻涕,听
删掉了微信聊天记录还能复原吗
文件夹右键第一项不是“打开”而是资源管理器
谭阳韩式烤肉怎么样
柯桥义务献血电话及站点
谌家坊花园在什么地方啊,我要过去处理事情
舟山25路公交到机场哪个站下
【左边一个山,右边一个支持的支,这个字念什么
推荐资讯
电视剧中使用的语音翻译软件是什么软件啊
炫彩格调美容养生会馆怎么去啊,有知道地址的
网络营销平台哪个好,选择G3网络推广
下坡汽车能熄火代档滑行吗?
判一年取保候审四个月剩下八个月在哪服刑
崩坏3萌新集训为什么会失败
急急急急,请问下换个新的网线水晶接头应该找
司马迁根据汉代经济分布特点,将全国分为四大
三国演义第13回诸葛亮火烧新野,刘玄德携民渡
共字笔顺怎么写
三星note3怎么设置微信运动
华硕VM520,华硕A556U,华硕A451U,华硕FL570
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?