C语言如何用fwrite将结构体写入文件
时间: 2024-11-28 15:14:25 浏览: 27
C语言——结构体的读取与写入.zip
在C语言中,`fwrite()` 函数通常用于向二进制文件中写入数据,包括结构体。首先,你需要包含头文件`stdio.h`,并假设你有一个结构体定义,例如:
```c
typedef struct {
int id;
char name[50];
} MyStruct;
```
然后,你可以创建一个这样的函数来写入结构体到文件:
```c
#include <stdio.h>
void write_to_file(MyStruct s, FILE *fp) {
// 获取结构体的大小,sizeof是对类型计算大小
size_t size = sizeof(MyStruct);
// 使用fwrite()将结构体逐字节写入文件
if (fwrite(&s, size, 1, fp) != 1) {
// 处理写入失败的情况
perror("Error writing to file");
exit(EXIT_FAILURE);
}
}
```
在这个函数里,`&s` 表示结构体变量的地址,`size` 是结构体的字节数,`1` 是要写入的元素个数(因为我们只有一条结构体数据),`fp` 是指向你要写入的文件的指针。
调用这个函数就像这样:
```c
int main() {
MyStruct mystruct = {1, "example"};
FILE *file = fopen("output.txt", "wb"); // wb表示二进制写模式
if (!file) {
perror("Failed to open file");
return -1;
}
write_to_file(mystruct, file);
fclose(file); // 关闭文件
return 0;
}
```
记得处理好文件打开和关闭的错误,以及可能的内存访问错误。
阅读全文