fread读取结构体字符块
时间: 2023-11-08 15:04:24 浏览: 146
可以通过以下代码使用`fread`函数读取结构体字符块:
```c
#include <stdio.h>
struct Person {
char name[20];
int age;
};
int main() {
struct Person p;
FILE *f = fopen("person.bin", "rb");
if (f == NULL) {
printf("Unable to open file\n");
return 1;
}
fread(&p, sizeof(struct Person), 1, f);
printf("Name: %s\n", p.name);
printf("Age: %d\n", p.age);
fclose(f);
return 0;
}
```
在上面的代码中,首先定义了一个名为`Person`的结构体,该结构体包含了一个长度为20的字符串`name`和一个整型变量`age`。然后,在`main`函数中,我们定义了一个名为`p`的`Person`类型变量,打开了一个名为`person.bin`的二进制文件,并使用`fread`函数读取了该文件中的一个结构体块,并将结果存储在`p`中。最后,我们打印了`p`的`name`和`age`字段,并关闭了文件。
需要注意的是,`fread`函数的第一个参数是一个指向结构体变量的指针,第二个参数是要读取的每个结构体的大小,第三个参数是要读取的结构体块的数量,最后一个参数是要读取的文件指针。
阅读全文