memcpy复制文件到结构体
时间: 2024-01-30 07:12:09 浏览: 122
在C语言中,memcpy函数主要用于将一个内存块的内容复制到另一个内存块。它可以用来复制文件内容到结构体中。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20];
int age;
} Person;
int main() {
FILE *file = fopen("person.txt", "rb"); // 打开二进制文件
Person p;
if (file != NULL) {
fread(&p, sizeof(Person), 1, file); // 从文件中读取数据到结构体
fclose(file); // 关闭文件
printf("Name: %s\n", p.name);
printf("Age: %d\n", p.age);
} else {
printf("Failed to open file.\n");
}
return 0;
}
```
上述代码中,我们定义了一个名为Person的结构体,包含一个字符数组name和一个整型变量age。我们通过fopen函数打开一个二进制文件,然后使用fread函数将文件中的数据读取到结构体p中。最后,我们打印出结构体中的数据。
需要注意的是,这里假设文件中的数据是按照结构体的布局存储的,即文件中的数据与结构体的成员一一对应。如果文件中的数据与结构体的布局不一致,那么使用memcpy函数复制文件内容到结构体可能会导致数据错误。
阅读全文