c语言结构体文件操作
时间: 2023-08-24 12:15:10 浏览: 182
在C语言中,我们可以使用结构体来定义一个数据类型,而结构体中的各个成员可以是不同的数据类型。如果我们想要将结构体中的数据保存到文件中,或者从文件中读取数据到结构体中,可以使用文件操作函数来实现。下面是一个简单的例子:
假设我们有一个名为`person`的结构体,其中包含姓名、年龄和性别三个成员:
```c
struct person {
char name[20];
int age;
char gender[10];
};
```
我们想要将这个结构体中的数据保存到文件中,可以使用`fwrite`函数来实现:
```c
#include <stdio.h>
int main() {
struct person p = {"Alice", 20, "female"}; // 定义一个结构体变量并初始化
FILE *fp = fopen("person.dat", "wb"); // 打开一个二进制文件
if (fp == NULL) {
printf("Error opening file!\n");
return 1;
}
fwrite(&p, sizeof(struct person), 1, fp); // 向文件中写入数据
fclose(fp); // 关闭文件
return 0;
}
```
这段代码将会创建一个名为`person.dat`的文件,并将结构体变量`p`中的数据写入到文件中。
如果我们想要从文件中读取数据到结构体中,可以使用`fread`函数来实现:
```c
#include <stdio.h>
int main() {
struct person p;
FILE *fp = fopen("person.dat", "rb"); // 打开一个二进制文件
if (fp == NULL) {
printf("Error opening file!\n");
return 1;
}
fread(&p, sizeof(struct person), 1, fp); // 从文件中读取数据到结构体中
printf("Name: %s\nAge: %d\nGender: %s\n", p.name, p.age, p.gender); // 输出读取到的数据
fclose(fp); // 关闭文件
return 0;
}
```
这段代码将会从名为`person.dat`的文件中读取数据,并将其保存到结构体变量`p`中。最后,我们可以通过`printf`函数将读取到的数据输出到屏幕上。
阅读全文