C语言在文件里覆盖原有内容的代码
时间: 2024-10-16 21:14:07 浏览: 32
在C语言中,如果你想覆盖文件原有的内容,可以使用`fopen()`函数打开文件并设置为追加(`"a"`)模式,然后使用`fprintf()`或`fwrite()`等函数将新数据写入。但是,如果你想要直接替换文件的内容,你需要先关闭原文件,再用写入(`"w"`)模式重新打开。
以下是简单的示例代码:
```c
#include <stdio.h>
void overwrite_file(const char* filename, const char* new_content) {
// 关闭已存在的文件
FILE* file = fopen(filename, "r+");
if (file == NULL) {
perror("Failed to open file for reading and writing");
return;
}
fclose(file); // 使用完旧文件后关闭
// 以写入模式重新打开并覆盖
file = fopen(filename, "w");
if (file == NULL) {
perror("Failed to open file for writing");
return;
}
// 写入新的内容
int bytes_written = fprintf(file, "%s", new_content);
if (bytes_written != strlen(new_content)) {
perror("Failed to write to file");
fclose(file);
return;
}
// 保存并关闭文件
fclose(file);
}
// 调用函数并传入文件名和新的内容
int main() {
const char* filename = "example.txt";
const char* new_content = "This is the new content.";
overwrite_file(filename, new_content);
return 0;
}
```
阅读全文