c语言 怎么将一个txt文件的所有信息删除

c语言 怎么将一个txt文件的所有信息删除,第1张

c语言将一个txt文件的所有信息删除的实现方法是以写模式打开一个同名文件,用来覆盖原来的文件,这样原来文件的内容将被删除。

具体显示方法如下:

int main()

{

int i

FILE *data

data = fopen("peding.txt", "w")

if(!data) {

perror("对不起,文件找不到")

return 1

}

/*循环写入100次 */

for(i = 0i <100i++)

writedata(data)

fclose(data)

return 0

}

/*写入内容不 *** 作*/

void writedata(FILE *data)

{

//刷新缓冲区

/* do other stuff */

...

}

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)

    }

    while(fgets(a,1000,fin))//从原文件读取一行

        if(a[0]!='2' && a[0]!='4')//检验是要删除的行吗?

            fputs(a,ftp)//不是则将这一行写入临时文件tmp.txt

    fclose(fin)

    fclose(ftp)

    remove("123.txt")//删除原文件

    rename("tmp.txt","123.txt")//将临时文件名改为原文件名

    return 0

}


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

原文地址: http://outofmemory.cn/sjk/9714892.html

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

发表评论

登录后才能评论

评论列表(0条)

保存