用C语言如何删除文件中的数据

来源:百度知道 编辑:UC知道 时间:2024/06/10 12:03:27
我用结构写了一个程序,现在我想把数据文件中的一组数据删除掉,有什么好的办法没有啊,除了文件覆盖法。
我补充一下,我用结构的方式定义的数据,难后写进文件里面,但是我需要对文件中的某一个数据进行删除,比如我定义
struct{
char name[10];
char addr[10];
}
然后写进文件里面, lang chongqing
wang sichuan
zhang xianggang
现在我想删除第二个数据就是wang sichuan
该怎么办啊

1、重建一个临时文件,把原文件内容向临时文件里拷贝,遇到要删除的内容就跳过。结束后关闭文件,用remove("原文件名");把原文件删除,用rename("临时文件名","原文件名");把临时文件名改为原文件名就OK了。


2、比如要按题面要求在原文件123.txt中删除编号为2和4的信息行,则可用以下代码实现:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
    FILE *fin,*ftp;
    char a[1000];
    fin=fopen("123.txt","r");//读打开原文件123.txt
    ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt
    if(fin==NULL || ftp==NULL){
        printf("Open the file failure...\n");
        exit(0);
    }