c语言怎么删除文件中指定数据
发布时间:2025-05-12 16:10:52 发布人:远客网络
一、c语言怎么删除文件中指定数据
用fseek函数定义流指针位置,位置需要自己计算。利用offset。然后再写入新内容覆盖旧内容。但这么做有缺陷,新内容必须和就内容一样长,否则覆盖不完全或把后面的内容也覆盖。
所以,我建议直接新建新文件写入完整的新数据,更简单。
fseek()用来移动文件流的读写位置.
1、参数stream为已打开的文件指针,
2、参数offset为根据参数whence来移动读写位置的位移数。参数 whence为下列其中一种:
SEEK_SET从距文件开头offset位移量为新的读写位置. SEEK_CUR以目前的读写位置往后增加offset个位移量.
SEEK_END将读写位置指向文件尾后再增加offset个位移量.当whence值为SEEK_CUR或
SEEK_END时,参数offset允许负值的出现.
二、如何用C语言创建和删除文件
在C语言中创建文件,使用fopen函数,同时指定为只写即可。
函数功能:创建文件名为s的文件。
if(s==NULL||s[0]=='\0')return-1;//参数为空,即错误参数。
fp=fopen(s,"r");//以只读方式打开
if(fp)//打开成功,表示文件已经存在。
fp=fopen(s,"w");//以只写方式创建文件。
在C语言中,有专门的删除文件函数remove。
2、声明:int remove(const char* filename);
3、功能:删除文件名为filename的文件。
4、返回值:删除成功,返回0.否则返回-1.
if(ret==0)//根据结果给出相应提示
三、用C语言如何删除文件中的数据
1、重建一个临时文件,把原文件内容向临时文件里拷贝,遇到要删除的内容就跳过。结束后关闭文件,用remove("原文件名");把原文件删除,用rename("临时文件名","原文件名");把临时文件名改为原文件名就OK了。
2、比如要按题面要求在原文件123.txt中删除编号为2和4的信息行,则可用以下代码实现:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
fin=fopen("123.txt","r");//读打开原文件123.txt
ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt
printf("Openthefilefailure...\n");
while(fgets(a,1000,fin))//从原文件读取一行
if(a[0]!='2'&&a[0]!='4')//检验是要删除的行吗?
fputs(a,ftp);//不是则将这一行写入临时文件tmp.txt
remove("123.txt");//删除原文件
rename("tmp.txt","123.txt");//将临时文件名改为原文件名