您当前的位置:首页 > 互联网教程

c语言怎么删除文件中指定数据

发布时间:2025-05-12 16:10:52    发布人:远客网络

c语言怎么删除文件中指定数据

一、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");//将临时文件名改为原文件名