C文件操作之--删除某文件中指定行
#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。
- 上一篇: string截取一定长度字符串
- 下一篇:没有了