c语言想在文件开头加一句话,并且不覆盖原来的内容
时间: 2024-03-11 20:48:52 浏览: 50
在C语言中,操作文件需要使用标准库中的文件操作函数。要在文件开头加入一句话,可以先将原文件内容读入内存,然后在新的内容前加入你想要添加的句子,最后将修改后的内容写回原文件中。具体可以参考以下代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1024
int main() {
char buffer[MAX_SIZE];
FILE *fp;
char *filename = "file.txt";
char *new_content = "你想加入的句子\n";
// 读取原文件内容
fp = fopen(filename, "r");
if (fp == NULL) {
perror("Error opening file");
return EXIT_FAILURE;
}
fgets(buffer, MAX_SIZE, fp);
fclose(fp);
// 在新的内容前加入你想要添加的句子
char *content = malloc(strlen(new_content) + strlen(buffer) + 1);
if (content == NULL) {
perror("Error allocating memory");
return EXIT_FAILURE;
}
strcpy(content, new_content);
strcat(content, buffer);
// 将修改后的内容写回原文件中
fp = fopen(filename, "w");
if (fp == NULL) {
perror("Error opening file");
return EXIT_FAILURE;
}
fputs(content, fp);
fclose(fp);
free(content);
return EXIT_SUCCESS;
}
```
注意要以 `"r"` 的方式打开文件,这样才能读取文件内容。另外,添加的句子需要加上换行符 `\n`,否则会与原来的内容连在一起。
阅读全文