📅  最后修改于: 2023-12-03 15:09:38.802000             🧑  作者: Mango
在C语言中,我们通常需要将一些结构体(struct)数据保存到文件中或者从文件中读取结构体数据。这种操作主要是为了数据持久化或者方便从文件中读取大量数据。
我们可以使用fwrite函数将结构体写入到文件中。下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
struct person
{
char name[20];
int age;
};
int main()
{
struct person p = {"John", 30};
FILE *fp = fopen("person.txt", "wb");
if(fp == NULL)
{
printf("Cannot open file.");
exit(1);
}
fwrite(&p, sizeof(struct person), 1, fp);
fclose(fp);
return 0;
}
上面的代码中,我们定义了一个人的结构体,包含名字(name)和年龄(age)两个成员。我们使用fwrite函数将p写入到文件person.txt中。
fwrite的第一个参数是要写入文件的地址,第二个参数是写入数据单元的大小,第三个参数是写入数据单元的数量,最后一个参数是指向文件的指针。
我们可以使用fread函数从文件中读取结构体数据。下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
struct person
{
char name[20];
int age;
};
int main()
{
struct person p;
FILE *fp = fopen("person.txt", "rb");
if(fp == NULL)
{
printf("Cannot open file.");
exit(1);
}
fread(&p, sizeof(struct person), 1, fp);
printf("Name: %s, Age: %d\n", p.name, p.age);
fclose(fp);
return 0;
}
上面的代码中,我们定义了一个人的结构体,用于存储从文件中读取的数据。我们使用fread函数从文件person.txt中读取数据,并将读取的数据存储在p结构体中。
fread的第一个参数是存储数据的地址,第二个参数是读取数据单元的大小,第三个参数是读取数据单元的数量,最后一个参数是指向文件的指针。
在C语言中,我们可以使用fwrite和fread函数将结构体数据保存到文件中或者从文件中读取结构体数据。这种操作对于复杂数据结构或大量数据的读写是非常方便的。