使用fwrite往文件尾写数据
时间: 2024-09-12 19:00:59 浏览: 34
为什么fwrite写文件后,用fread读出来文件长度是0,即fread读不出数据
`fwrite`函数是C语言标准库中的一个函数,用于向文件的指定位置写入数据。如果你想往文件尾追加数据,你需要使用二进制模式(`"wb"` 或 `"ab"`),因为默认的文本模式("w")会清空文件然后再写入。
下面是一个简单的例子:
```c
#include <stdio.h>
int main() {
char data[] = "这是往文件尾追加的数据";
FILE *fp;
// 打开文件(如果不存在则创建),文件指针设为追加模式
fp = fopen("example.txt", "ab");
if (fp == NULL) {
printf("Failed to open the file.\n");
return 1;
}
// 写入数据,返回实际写入的字节数
size_t bytes_written = fwrite(data, sizeof(char), strlen(data), fp);
if (bytes_written != strlen(data)) {
printf("Write failed.\n");
} else {
printf("Data written successfully.\n");
}
// 关闭文件
fclose(fp);
return 0;
}
```
在这个例子中,`fwrite`会自动将数据添加到文件的当前位置,由于我们使用了追加模式,所以它会在文件末尾写入。如果文件已存在,新数据会被追加到原内容之后。
阅读全文