C语言删除文件中的含有匹配内容的一行
时间: 2023-08-07 17:06:38 浏览: 88
要删除文件中含有匹配内容的一行,可以按照以下步骤进行操作:
1. 打开文件,并且创建一个临时文件。
2. 从原文件中读取每一行。
3. 如果该行不包含匹配内容,则将其写入临时文件中。
4. 如果该行包含匹配内容,则跳过该行,不将其写入临时文件中。
5. 关闭原文件和临时文件。
6. 删除原文件。
7. 将临时文件重命名为原文件名。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char filename[] = "example.txt"; // 文件名
char tempname[] = "temp.txt"; // 临时文件名
char match[] = "hello"; // 匹配字符串
FILE *fp, *temp;
char line[100];
// 打开文件和临时文件
fp = fopen(filename, "r");
temp = fopen(tempname, "w");
// 读取每一行
while (fgets(line, sizeof(line), fp)) {
// 如果不包含匹配字符串,则写入临时文件
if (!strstr(line, match)) {
fputs(line, temp);
}
}
// 关闭文件
fclose(fp);
fclose(temp);
// 删除原文件
remove(filename);
// 将临时文件重命名为原文件名
rename(tempname, filename);
return 0;
}
```
上述代码中,我们使用了 `fgets()` 函数读取每一行,使用 `strstr()` 函数查找匹配字符串,并使用 `remove()` 函数删除原文件。最后,我们使用 `rename()` 函数将临时文件重命名为原文件名。
阅读全文