C语言中,如何删除一个txt文档中的内容?

C语言中,如何删除一个txt文档中的内容?,第1张

c语言修改txt文档的内容只能是先全部读入内存中,然后修改,,再全部写入文件

所以就需要先把文件的内容fread(或者别的方式也可以)读入字符数组中,,然后在数组中删除你想要删除的字符,,再fwrite(注意与之前读的方式对应)到文件中。。。

1.文件小的话,完整读入内存,在内存中删除,然后以写方式清空原始文件并覆盖

2.文件大的话,先逐段读取,确认要删除的起止位置,然后将之后的内容分段读出并覆盖到前面,最后截去文件多余的长度

3.如果磁盘足够大,也可以从头读取原始文件并转存到一个缓存文件,遇到要删除的地方则跳过不写,所有内容都写入缓存文件后,将缓存文件整个copy覆盖原始文件,删除缓存文件.

c++没有提供像编辑器那样提供那么简单快捷的直接删除方法,只能够覆盖写过去.

在windows下面,可以使用system()命令执行dos命令,来达到删除的效果。

还有个函数,unlink(),可以用来删除文件。

使用时要包含必要的头文件。

示例:

#include<stdio.h>

int main()

{

unlink("你的桌面地址\\123.txt")//你的桌面地址/123.txt

//或者, system("del 你的桌面地址\\123.txt")//使用时包含<dos.h>

return 0

}

--------------------------------------------

你又补充了哦,

好吧,你的地址错误了。

system("del C:\Users\Administrator\Desktop\\123.txt")

修改为system("del C:\\Users\\Administrator\\Desktop\\123.txt")

因为,\在""是转义的意思,两个\\代表\

或者使用,system("del C:/Users/Administrator/Desktop/123.txt")

---------------------------------------------

你使用的是CPP,我看看,我使用C编译通过了,好像是说你的system定义有问题,头文件不对。

试了下,在使用CPP,也可以啊,那应该是你编译环境有问题吧,我使用的是GCC。无能为力了。

你试看看unlink.

---------------------------------------------

用gcc编译c程序的时候 经常会出现

implicit declaration of function '...' 的warning

1 没有把函数所在的c文件生成.o目标文件

2 在函数所在的c文件中声明了,但是没有在调用它的.h或.c文件中声明

3 其头文件都声明过了,所调用的函数的原型与所传的实参类型不匹配.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11480790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存