入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C文件操作之--删除某文件中指定行

创建时间:2013-12-19 投稿人: 浏览次数:4069
#include <stdio.h>
#include <stdlib.h>
/**
删除指定文件filepath中第n行内容
思路:
1.依次读取源文件内容(除了第n行),并且写入到新的tmp.txt文件。
2.然后清空源文件,将tmp.txt文件重新读取写入到源文件
3.删除tmp.txt文件
**/

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) 
		{          
			fgets(buf,sizeof(buf), fp);   //移动文件指针
		}
		else 
		{
			fgets(buf, sizeof(buf), fp);
			fprintf(fpt, "%s", buf); 
		}
	} 
	fclose(fp);
	fclose(fpt);

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

	//清空filepath文件
    fp = fopen(filepath, "wb");   
	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,使用该命令需要包含<stdlib.h>文件
}



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

阅读更多
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。