C语言代码实现在文件某一行后面添加新内容
时间: 2023-09-13 19:04:33 浏览: 259
你可以使用C语言中的文件操作函数来实现在文件某一行后面添加新内容。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char filename[] = "example.txt"; // 文件名
char insert_line[] = "This line is inserted!"; // 要插入的内容
int insert_at_line = 3; // 要插入的行数
// 打开文件并读取内容
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error opening file %s!\n", filename);
exit(1);
}
char buffer[1024];
int line_num = 1;
while (fgets(buffer, sizeof(buffer), fp)) {
// 如果是要插入的行,则在后面添加新内容
if (line_num == insert_at_line) {
// 移动文件指针到当前位置
fseek(fp, ftell(fp) - strlen(buffer), SEEK_SET);
// 插入新内容
fputs(insert_line, fp);
// 再写回原来的内容
fputs(buffer, fp);
}
// 输出当前行的内容
printf("%s", buffer);
// 行数加1
line_num++;
}
// 如果要插入的行在文件末尾,则在末尾添加新内容
if (insert_at_line == line_num) {
// 移动文件指针到文件末尾
fseek(fp, 0, SEEK_END);
// 插入新内容
fputs(insert_line, fp);
}
// 关闭文件
fclose(fp);
return 0;
}
```
在上面的示例代码中,我们首先定义了要操作的文件名、要插入的内容以及要插入的行数。然后我们使用`fopen`函数打开文件,并使用`fgets`函数逐行读取文件内容。当读取到要插入的行时,我们使用`fseek`函数移动文件指针到当前位置,然后使用`fputs`函数插入新内容,并再次使用`fputs`函数将原来的内容写回文件。如果要插入的行在文件末尾,则在末尾直接使用`fseek`函数移动文件指针并使用`fputs`函数插入新内容即可。最后使用`fclose`函数关闭文件。
注意,上面的示例代码只是一个简单的示例,实际应用中可能需要考虑更多的情况,例如文件不存在、要插入的行数超过文件总行数等等。
阅读全文