在C语言中,二进制文件的读写操作主要通过以下两种方式实现:
一、使用标准库函数(推荐)
打开文件 使用 `fopen` 函数以二进制模式打开文件,需添加 `ios::binary` 标志(在C++中)或模式参数 `wb`(在C中)。
写入数据
使用 `fwrite` 函数将数据写入文件,需指定数据类型、数据长度及文件指针。
关闭文件
使用 `fclose` 函数关闭文件流。
示例代码(C语言):
```c
include
int main() {
FILE *fp;
int number = 42;
float score = 95.5f;
char name[] = "张三";
// 以二进制模式打开文件
fp = fopen("data.bin", "wb");
if (fp == NULL) {
perror("无法打开文件");
return 1;
}
// 写入数据
fwrite(&number, sizeof(number), 1, fp);
fwrite(&score, sizeof(score), 1, fp);
fwrite(name, sizeof(name), 1, fp);
// 关闭文件
fclose(fp);
return 0;
}
```
二、使用C++的`fstream`库(更简洁)
C++提供了更高级的文件操作接口,使用 `ofstream` 和 `ifstream` 类可简化操作。
示例代码(C++):
```cpp
include include include struct Person { char name; int age; }; int main() { Person person = {"张三", 18}; // 以二进制模式写入文件 std::ofstream outFile("person.bin", std::ios::binary); if (!outFile) { std::cerr << "无法创建文件" << std::endl; return 1; } outFile.write(reinterpret_cast outFile.close(); return 0; } ``` 注意事项 数据对齐与格式: 二进制文件需注意数据对齐问题,建议使用 `pragma pack` 指定结构体对齐方式。 使用 `char` 类型写入字符串时,需确保文件以二进制模式打开,避免平台相关的字符编码问题。 建议检查文件是否成功打开及写入操作是否成功。 通过以上方法,可灵活实现二进制文件的读写操作。字符编码:
错误处理: