C语言如何删除文件中的内容?

shaoxiaojing5193 2011-06-09 07:24:00
小弟是初学者阿,只简单的学了C语言,对其大部分函数都不是很了解,我用fprintf写了一些内容到1.txt文本中,想问一下,如何把文本中的某个内容删除呢?直接删除也好,全部读取出来删除了然后再写进去也好,求解阿,感激不尽!
...全文
8320 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leson_Yin 2011-06-12
  • 打赏
  • 举报
回复
char * line;
line="hello world!"
Leson_Yin 2011-06-12
  • 打赏
  • 举报
回复

/*往文件中写*/
FILE *fout;
//这样打开时 就是把原文件中的内容清掉了。
if((fout = fopen("e:\\6281013_c.txt", "w+"))!=NULL){
int i=0;
for(i;i<3;i++){
fprintf(fout,"%s\n",line);//字符串末端加换行
}
}
fclose(fout);
赵4老师 2011-06-09
  • 打赏
  • 举报
回复
创建一个临时文件,
打开旧文件,
边读边把除要删除内容以外的其它内容写到临时文件,
关闭旧文件,
关闭临时文件,
删除旧文件,
将临时文件重命名为和旧文件的文件名相同的名字。
AnYidan 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shaoxiaojing5193 的回复:]
引用 5 楼 neolyaoo 的回复:
先读出来,删除,再写进去!!!

再写进去的时候如何能把原来的内容覆盖?或者是如何把原来的内容清空?除了用fopen mode用 w这个方法。。。。
[/Quote]

还可以用 fssek 指定写入的位置,
shaoxiaojing5193 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 neolyaoo 的回复:]
先读出来,删除,再写进去!!!
[/Quote]
再写进去的时候如何能把原来的内容覆盖?或者是如何把原来的内容清空?除了用fopen mode用 w这个方法。。。。
蓝染忽右介 2011-06-09
  • 打赏
  • 举报
回复
先读出来,删除,再写进去!!!
shaoxiaojing5193 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 crjwlaq 的回复:]
现在把文件中的内容读到内存,在内存中把要删除的东西删除,然后再写一遍文件吧。
[/Quote]
在内存中把要删除的东西删除,然后再写入原来的文件,这样如何把原来文件中的内容覆盖呢?我的意思是,再写入的时候如何把原来的内容覆盖?
crjwlaq 2011-06-09
  • 打赏
  • 举报
回复
现在把文件中的内容读到内存,在内存中把要删除的东西删除,然后再写一遍文件吧。
shaoxiaojing5193 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 crjwlaq 的回复:]
用fopen打开时候 就可以啊
设置一下mode

如果有 w ,那么会清空所有内容的

如果要追加 就不要写w了, 只写 a 就追加新内容
[/Quote]
我的意思是删除某部分内容,不是全部都删除阿,比如内容有aaaabbb,然后向把ab这两个字符删除掉,是这个意思。。。
crjwlaq 2011-06-09
  • 打赏
  • 举报
回复
用fopen打开时候 就可以啊
设置一下mode

如果有 w ,那么会清空所有内容的

如果要追加 就不要写w了, 只写 a 就追加新内容

70,019

社区成员

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

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