c语言fwrite 覆盖旧数据

[复制链接]
查看11 | 回复4 | 2016-7-7 15:07:47 | 显示全部楼层 |阅读模式
不是的以外包打开会自动把文件以前的内容全部清空,再进行你写的操作,并没有覆盖一说,如果不想覆盖,就用ab追加模式,或者rb读的模式rb模式不会请数据,这时候写数据才会发生那种数据覆盖的情况...
回复

使用道具 举报

千问 | 2016-7-7 15:07:47 | 显示全部楼层
wb以只写方式创建一个二进制文件,只要fopen了,无论是否执行写操作,原来文件的内容都将丢失,相当于删除原文件,又重新创建一个相同名字的文件。fopen之后,读写位置会随着fread\fwrite等操作向后移动,可以使用fseek改变读写指针的位置,从而可以使用fwrite覆盖原有数据。...
回复

使用道具 举报

千问 | 2016-7-7 15:07:47 | 显示全部楼层
读写不会自动移动到文件头,如果被覆盖了,肯定是你文件指针指向了被覆盖区域。只有append模式才有自动移动文件指针的机制,但是它只移动到文件尾部,不会覆盖。所以要好好看看你计算文件指针位置的代码,看哪有错...
回复

使用道具 举报

千问 | 2016-7-7 15:07:47 | 显示全部楼层
wb模式,是只写打开或新建一个二进制文件。 如果文件 不存在,就新建一个;如果存在,就打开,并且文件长度清为0。每次打开指针都会指向开始的位置。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行