c 语言 删除txt文档指定行,C文件操作之--删除某文件中指定行

#include

#include

/**

删除指定文件filepath中第n行内容

**/

void Delete(char* filepath, int n)

{

char buf[4096]; //每读取一行,都将内容放到该数组中

FILE* fp = fopen(filepath, "r"); //filepath里是原内容

FILE* fpt = fopen("temp.txt", "w"); //将filepath文件第n行内容删除后存入temp.txt中

int i = 0;

while(!feof(fp))

{

i++;

if (i == n) //删掉第n行,其实就是读到第n行时,仅仅移动一下文件指针,否则就

{ //将读取到的一行文件内容放到临时文件中temp.txt中,这就是所谓的删除

fgets(buf,sizeof(buf), fp); //必须要这一行,因为加上后文件指针将会移动

}

else

{

fgets(buf, sizeof(buf), fp);

fprintf(fpt, "%s", buf);

}

}

fclose(fp);

fclose(fpt);

fpt = fopen("temp.txt", "r");

fp = fopen(filepath, "wb"); //清空filepath文件

fclose(fp);

fp = fopen(filepath, "a");

while(!feof(fpt))

{

fgets(buf, sizeof(buf), fpt);

fprintf(fp, "%s", buf);

}

fclose(fp);

fclose(fpt);

system("ERASE temp.txt"); //删除文件temp.txt,使用该命令需要包含文件

}

void main()

{

Delete("E:/VC6练习/Test/1.txt", 3);

}

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值