
公考顾老师为您分享以下优质知识
在C语言中,二进制文件存储与文本文件存储的主要区别在于数据以二进制形式存储(适用于程序内部数据或需要跨平台兼容的场景),而文本文件以字符形式存储(适用于人类可读的数据)。以下是二进制文件存储的常见方法及示例代码:
一、二进制文件存储方法
通过`fopen`、`fwrite`、`fread`、`fclose`等函数进行操作,支持大文件处理和数据持久化。 - 写入示例:
```c
include
int main() {
int data = 123;
FILE *fp = fopen("data.bin", "wb");
if (fp == NULL) {
perror("无法打开文件");
return 1;
}
fwrite(&data, sizeof(int), 1, fp);
fclose(fp);
return 0;
}
```
- 读取示例:
```c
include
int main() {
FILE *fp = fopen("data.bin", "rb");
if (fp == NULL) {
perror("无法打开文件");
return 1;
}
int data;
fread(&data, sizeof(int), 1, fp);
fclose(fp);
printf("读取的整数为: %dn", data);
return 0;
}
```
通过定义无符号字符数组逐字节存储二进制数据,但效率较低且不推荐用于大文件。 - 示例代码:
```c
unsigned char binaryData[] = {0b11001100, 0b10101010, 0b11110000};
for (int i = 0; i < sizeof(binaryData); i++) {
printf("Byte %d: %02xn", i, binaryData[i]);
}
```
二、注意事项
文件模式:二进制文件需使用`"wb"`(写入二进制)或`"rb"`(读取二进制)模式打开,避免与文本模式混淆。
数据类型对齐:二进制文件按内存对齐存储,不同数据类型占用字节数可能不同(如`int`通常为4字节)。
错误处理:建议检查`fopen`、`fwrite`、`fread`等函数的返回值,确保操作成功。
通过以上方法,可高效地在C语言中实现二进制文件的存储与读取。