C语言二进制文件操作:结构体读写详解
C语言二进制文件操作:结构体读写详解
在C语言编程中,将结构体数据保存到文件或从文件中读取结构体数据是非常常见的需求。本文将重点介绍如何使用二进制文件的方式进行这些操作。
1. 将结构体内容写入二进制文件c#include <stdio.h>
typedef struct { int id; char name[20]; float salary;} Employee;
int main() { Employee emp = {1, 'John Doe', 5000.0};
FILE *file = fopen('employee.bin', 'wb'); // 以写入二进制模式打开文件 if (file == NULL) { printf('无法创建或打开文件。
'); return 1; }
fwrite(&emp, sizeof(Employee), 1, file); // 将结构体内容写入文件
fclose(file); // 关闭文件 return 0;}
代码解释:
- 首先,我们定义了一个名为
Employee的结构体,包含员工的 ID、姓名和薪水信息。* 接着,我们创建了一个Employee类型的变量emp,并初始化其成员变量。* 使用fopen函数以写入二进制模式 ('wb') 打开名为employee.bin的文件。*fwrite函数将emp结构体的内存数据写入文件。sizeof(Employee)确保写入整个结构体的大小,1表示写入一个结构体。* 最后,使用fclose函数关闭文件。
2. 从二进制文件中读取结构体数据c#include <stdio.h>
typedef struct { int id; char name[20]; float salary;} Employee;
int main() { Employee emp;
FILE *file = fopen('employee.bin', 'rb'); // 以读取二进制模式打开文件 if (file == NULL) { printf('无法打开文件。
'); return 1; }
fread(&emp, sizeof(Employee), 1, file); // 从文件中读取数据到结构体
printf('员工ID: %d
', emp.id); printf('员工姓名: %s ', emp.name); printf('员工薪水: %.2f ', emp.salary);
fclose(file); // 关闭文件 return 0;}
代码解释:
- 同样地,我们先定义了
Employee结构体。* 使用fopen函数以读取二进制模式 ('rb') 打开employee.bin文件。*fread函数从文件中读取数据到emp结构体中,读取的大小和方式与写入时一致。* 最后,我们打印读取到的员工信息,并使用fclose关闭文件。
SEO优化建议:
- 标题中包含关键词 “C语言”,“二进制文件”,“结构体”。* 描述中概括文章内容,并包含相关关键词。* 使用清晰的代码注释,方便读者理解。* 在文章开头和结尾添加相关链接,引导用户访问更多相关内容。
希望本文能帮助您理解如何在 C 语言中进行二进制文件的结构体读写操作。请记住,在实际应用中,务必进行必要的错误处理,以确保程序的健壮性。
原文地址: https://www.cveoy.top/t/topic/R32 著作权归作者所有。请勿转载和采集!