当前位置: 代码迷 >> C语言 >> [求助]关于文件保存的问题
  详细解决方案

[求助]关于文件保存的问题

热度:110   发布时间:2007-09-10 17:08:54.0
[求助]关于文件保存的问题
我要将在内存中的数据保存到磁盘的文件中,可以用fwrite或fpritf,直接写入就可以。但我想请教一下高手,如何实现覆盖保存又如何实现?非常谢谢!
搜索更多相关的解决方案: 文件  保存  

----------------解决方案--------------------------------------------------------
可以用fwrite或fpritf,直接写入就可以,用"w"或者"wb"方式打开



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
----------------解决方案--------------------------------------------------------
回复:可以用fwrite或fpritf,直接写入就可...
谢谢!我先试试!
----------------解决方案--------------------------------------------------------
可以用fwrite直接写文件 就可以拉~~

如果不想覆盖写,就用fseek 这个函数将要写的位置移位 就可以拉
----------------解决方案--------------------------------------------------------

在对文件保存的时侯,当某文件中有了一定的数据,
如果再向其保存数据的时侯,它不会像我们文本编辑器一样能插入,
程序只是从保存的位置开始,将以前的数据覆盖.
例如文件中有下列二进制数据:
0x12 0x23 0x12 0x23 0x12 0x23 0x12 0x23 0x43
如果从文件的开头位置,保存下列数据:
0x43 0x23 0x43 0x89 0x29 0x21 0x21 0x89 0x38 0x89
最终,文件中保存的数据如下:
0x43 0x23 0x43 0x89 0x29 0x21 0x21 0x89 0x38 0x89

可以参考下列程序:
#include<stdio.h>
int main(void)
{
FILE *fp=fopen("zhao.txt","w+");
fprintf(fp,"zhaoxufeng");
fseek(fp,0,0);
fprintf(fp,"12833");
fclose(fp);
}

#include<stdio.h>
int main(void)
{
FILE *fp=fopen("zhao.txt","w+");
fprintf(fp,"zhaoxufeng");
fseek(fp,0,0);
fprintf(fp,"12833723728322222222");
fclose(fp);
}

看一下程序运行后,文件中的数据.


----------------解决方案--------------------------------------------------------
  相关解决方案