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));//发现执行多次后文件并没有变长,而是覆盖内容
如何添加内容,谢谢 展开
g.seekg(0,ios::beg);//在文件头部加
g.write(reinterpret_cast<char *>(&bmpHeader),sizeof(bmpHeader));//发现执行多次后文件并没有变长,而是覆盖内容
如何添加内容,谢谢 展开
展开全部
没有直接的办法。
你可以先seek到文件尾,然后获取位置(实际上这一步是获取文件长度)
然后seek到文件头,申请和文件大小相同的内存空间,然后把文件内容全部读出来
然后seek到文件头,写入你要写入的部分
最后把刚刚“全部读出来”的给写回去。
另:如果要用我叙述的方法,以ios::out方式打开会死
p.s. 看你的代码,你是想要把只含有原始像素点颜色数据的文件给搞成bmp文件?w
你可以先seek到文件尾,然后获取位置(实际上这一步是获取文件长度)
然后seek到文件头,申请和文件大小相同的内存空间,然后把文件内容全部读出来
然后seek到文件头,写入你要写入的部分
最后把刚刚“全部读出来”的给写回去。
另:如果要用我叙述的方法,以ios::out方式打开会死
p.s. 看你的代码,你是想要把只含有原始像素点颜色数据的文件给搞成bmp文件?w
追问
en,有什么建议
追答
没什么建议。以我的知识能力范围就只能这么做。
先全部读出来,再写入头,再写入原来的数据。
这玩意儿不是链表,随便就可以在表头添加数据。
这玩意儿你要当作数组
展开全部
没有在文件中插入那种函数,你可以新建一个文件先吧文件头写入,在读出第二个文件的内容写入刚才新建的文件里面。恩,只能这么办!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
教你个简单的
FILE *file = fopen("D://123.TXT","at");
fprintf(file,“写入内容测试”);
fclose(file);
FILE *file = fopen("D://123.TXT","at");
fprintf(file,“写入内容测试”);
fclose(file);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询