背景
网上实现文件内容替换的方法大多都是先生成一个temp临时文件,然后读取原文件的内容进行替换过后再写入到temp临时文件,然后再删除原文件或者其他方法,这种生成临时文件的方法虽然能够将功能实现,但是进行文件的操作过多,而且还要生成一个文件,比较麻烦,今天就利用移动文件指针的方式对匹配的文件内容进行替换。
解决方案
首先我们创建一个文件a.txt:
新建文件
我们下面编写程序对an字符串进行替换,就用@来替换吧,那么首先定义一些变量
//变量定义
char buffer[MAX_LENGTH];
int fp_start = 0; //记录文件指针起始
int fp_end = 0; //记录文件指针末尾
int buffer_length = 0;
int move_length = 0;
FILE *fp = fopen(argv[1],"r+"); //使用命令行参数打开文件位置
然后我们按行读取文件内容
if(fgets(buffer, MAX_LENGTH, fp) == NULL)
{
break;
}
else
{
buffer_length = strlen(buffer);
for(int j = 0; j < buffer_length;