文件读写操作问题

bitmap8 2009-10-19 03:57:01
要求如下:

(1).向文件写入"this is a test"
要求保留原有文件内容,并在文件开始位置写入.
(2).偏移到文件头,再把数据读出
(3).关闭文件

请用最优方法.
...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
selooloo 2009-10-20
  • 打赏
  • 举报
回复
只知道一个笨方法,把文件读入内存,在内存中对其操作,然后写入文件,覆盖原文件内容
重新回到文件头可以用rewind(fp); 也可以用fseek(fp,0L,SEEK_SET);
关闭文件 fclose(fp);
zjhiphop2006 2009-10-19
  • 打赏
  • 举报
回复
FILE *fp;
char test[]="this is a test" ;
char temp[20];
if((fp=fopen("file.txt","rb"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fseek(fp,0,0);
fwrite(test,sizeof(test),1,fp);
rewind(fp);
fread(temp,sizeof(test),1,fp);
printf("%s",temp);
fclose(fp);
mars_man 2009-10-19
  • 打赏
  • 举报
回复
如果要改写覆盖文件中的某个字节,怎样最快?
kouwenlong 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 thy38 的回复:]
如果用程序,也就只能:
1. 打开a.txt
2. 新建b.txt
3. 在b.txt中写入
4. 将a.txt中的内容写入b.txt
5. 删除a.txt,将b.txt重命名为a.txt

别无它法。
[/Quote]
我也想到这个。
thy38 2009-10-19
  • 打赏
  • 举报
回复
如果用程序,也就只能:
1. 打开a.txt
2. 新建b.txt
3. 在b.txt中写入
4. 将a.txt中的内容写入b.txt
5. 删除a.txt,将b.txt重命名为a.txt

别无它法。
thy38 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mstlq 的回复:]
system("copy 1.txt+2.txt 3.txt);
[/Quote]
得再加一句:system("move 3.txt 1.txt /y");
mstlq 2009-10-19
  • 打赏
  • 举报
回复
system("copy 1.txt+2.txt 3.txt);
la_feng 2009-10-19
  • 打赏
  • 举报
回复
那不是文件的所有数据都要后移,怎么最优?不懂
nosxcy 2009-10-19
  • 打赏
  • 举报
回复
fopen()
fwrite()
fseek()
fread()
fclose()

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧