C语言代码实现按内容查找文件行,并添加新内容在这一行后面
时间: 2024-03-24 19:39:46 浏览: 133
好的,可以为您提供一个简单的实现。首先,您需要提供要查找的内容和要添加的新内容。假设您要查找的内容为`target`,要添加的内容为`new_content`。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LEN 1000
int main() {
char target[] = "hello";
char new_content[] = "world";
char filename[] = "example.txt";
char line[MAX_LINE_LEN];
FILE *fp = fopen(filename, "r");
FILE *f_temp = fopen("temp.txt", "w");
if (fp == NULL || f_temp == NULL) {
printf("Error opening file.\n");
return 1;
}
while (fgets(line, MAX_LINE_LEN, fp) != NULL) {
if (strstr(line, target) != NULL) {
fputs(line, f_temp);
fputs(new_content, f_temp);
} else {
fputs(line, f_temp);
}
}
fclose(fp);
fclose(f_temp);
remove(filename);
rename("temp.txt", filename);
printf("Done.\n");
return 0;
}
```
这个程序将打开一个名为`example.txt`的文件,然后查找包含`target`的行,并在这一行后面添加`new_content`。修改后的内容将写入一个名为`temp.txt`的临时文件中,并在修改完成后将其重命名为原始文件名。请注意,这个程序只能在Unix系统和Windows系统上运行。
注意:这个程序只是一个简单的示例,可能需要根据实际需求进行修改。例如,如果要添加多行文本,您需要更改代码以确保逐行写入新文本。另外,这个程序也没有处理一些边缘情况,例如文件过大或文件不存在等。
阅读全文