在C语言中,以二进制方式存储文件主要通过文件I/O函数实现,具体方法如下:
一、核心方法:使用FILE*和二进制I/O函数
文件打开模式 使用`"wb"`(写入二进制)或`"rb"`(读取二进制)模式打开文件,确保数据以二进制形式存储,避免文本模式下的字符编码转换。
写入二进制数据
- 基本数据类型: 直接使用`fwrite`函数写入整数、浮点数等基本数据类型,例如: ```c int a = 0x1234; fwrite(&a, sizeof(int), 1, fp); ``` - 数组或结构体
```c
struct Person {
char name;
int age;
float height;
} pWrite;
fwrite(&pWrite, sizeof(struct Person), 1, fp);
```
- 字符数据:写入字符串时,`fwrite`会按字符编码(如ASCII)存储,需注意文本编辑器可能无法正确显示二进制内容。
二、注意事项
字节序:二进制文件在不同系统(大端/小端)下存储顺序一致,无需额外处理。
文件关闭:操作完成后需调用`fclose`释放文件资源。
错误处理:建议检查`fopen`等函数的返回值,确保文件操作成功。
三、扩展功能
位操作:通过位域或位操作符(如`&`、`|`)直接操作二进制位,适用于低级数据存储需求。
动态数据:结合动态内存分配(如`malloc`)处理任意大小的数据集。
以上方法适用于大多数二进制文件存储场景,根据数据类型和需求选择合适的方式即可。