C语言实现对txt文件的某一行进行覆盖并修改内容,给出具体的代码
时间: 2024-02-20 17:57:13 浏览: 144
以下是一个简单的示例代码,可以实现对txt文件的某一行进行覆盖并修改内容:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 100
int main() {
FILE *file;
char filename[] = "example.txt";
char buffer[MAX_LINE_LENGTH];
char new_line[MAX_LINE_LENGTH];
int line_number, current_line = 1;
// 打开文件
file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件 %s\n", filename);
exit(EXIT_FAILURE);
}
// 获取要修改的行号
printf("请输入要修改的行号:");
scanf("%d", &line_number);
// 读取文件并修改指定行
while (fgets(buffer, MAX_LINE_LENGTH, file)) {
if (current_line == line_number) {
printf("当前行内容为:%s\n", buffer);
printf("请输入新的行内容:");
scanf("%s", new_line);
fseek(file, -strlen(buffer), SEEK_CUR); // 将文件指针回退到当前行开头
fputs(new_line, file); // 覆盖当前行
break;
}
current_line++;
}
// 关闭文件
fclose(file);
return 0;
}
```
上述代码中,首先打开指定的txt文件,然后获取用户要修改的行号。接着,使用while循环逐行读取文件内容,当读取到用户指定的行时,要求用户输入新的行内容,并将文件指针回退到当前行开头,然后使用fputs函数覆盖当前行。最后关闭文件,并返回0表示程序执行成功。
阅读全文