乐闻世界logo
搜索文章和话题

How to read/write a binary file in C++?

5 个月前提问
4 个月前修改
浏览次数44

1个答案

1

在C++中读写二进制文件主要利用了输入/输出文件流库(<fstream>),这里包括了ifstream用于文件读取和ofstream用于文件写入。

写入二进制文件

要写入二进制文件,你可以使用ofstream,并在打开文件时使用ios::binary标志,这表明文件以二进制模式打开。这是一个示例代码,展示如何写入二进制数据:

cpp
#include <fstream> #include <iostream> int main() { // 创建一个 ofstream 对象用于写入文件,以二进制方式 std::ofstream outFile("example.bin", std::ios::binary); if (!outFile) { std::cerr << "无法打开文件进行写入" << std::endl; return 1; } int data = 12345; // 写入数据 outFile.write(reinterpret_cast<const char*>(&data), sizeof(data)); // 关闭文件 outFile.close(); return 0; }

在这个示例中,我们首先包含了<fstream><iostream>头文件。ofstream对象outFile被用来创建一个名为example.bin的文件。我们使用write函数来将整数data以二进制形式写入文件。write函数的第一个参数是要写入数据的指针(这里使用了reinterpret_cast将整数的地址转换为const char*类型),第二个参数是要写入的字节数。

读取二进制文件

读取二进制文件的流程与写入类似,但使用的是ifstream。这是读取二进制文件的示例代码:

cpp
#include <fstream> #include <iostream> int main() { // 创建一个 ifstream 对象用于读取文件,以二进制方式 std::ifstream inFile("example.bin", std::ios::binary); if (!inFile) { std::cerr << "无法打开文件进行读取" << std::endl; return 1; } int data; // 读取数据 inFile.read(reinterpret_cast<char*>(&data), sizeof(data)); // 显示读取的数据 std::cout << "读取的数据为: " << data << std::endl; // 关闭文件 inFile.close(); return 0; }

在这个例子中,我们同样使用了ifstream来打开文件,并使用read函数来从文件中读取二进制数据。read的参数和write的参数类似,也需要传递数据指针的地址和数据大小。

总结

读写二进制文件在C++中相对简单,关键是使用正确的文件模式(std::ios::binary)和正确的方法(writeread)进行操作。这种方式对于处理二进制数据(如图像文件、自定义数据记录等)非常有用。

2024年6月29日 12:07 回复

你的答案