21xrx.com
2025-06-05 18:13:33 Thursday
文章检索 我的文章 写文章
C++二进制文件读取
2023-07-09 22:13:14 深夜i     --     --
C++ 二进制文件 读取

C++是一种广泛使用的编程语言,在许多应用程序中都有广泛的应用。在C++中,二进制文件读取是一种比较常见的操作,它用于读取文件中的二进制数据,以进一步处理数据或执行其他操作。

在C++中,我们可以使用fstream类来读取和写入二进制文件。首先,我们需要打开一个二进制文件:

c++
#include <fstream>
using namespace std;
int main() {
  fstream file("example.bin", ios::in | ios::binary);
  if (!file)
   cout << "Fail to open file!" << endl;
   return 1;
 
  // ...
  file.close();
  return 0;
}

在上面的示例中,我们创建了一个名为example.bin的二进制文件,并使用fstream类的构造函数打开该文件以进行读取。打开文件时,我们需要指定打开模式(in表示输入、binary表示以二进制方式打开)。如果无法打开文件,则会输出错误消息。

一旦我们打开了文件,就可以使用read函数来读取二进制数据:

c++
#include <iostream>
using namespace std;
struct Person {
  char name[32];
  int age;
  float weight;
};
int main() {
  fstream file("people.bin", ios::in | ios::binary);
  if (!file)
   cout << "Fail to open people.bin!" << endl;
   return 1;
 
  Person p;
  file.read(reinterpret_cast<char*>(&p), sizeof(Person));
  cout << "Name: " << p.name << endl;
  cout << "Age: " << p.age << endl;
  cout << "Weight: " << p.weight << endl;
  file.close();
  return 0;
}

在上面的示例中,我们定义了一个名为Person的结构体,其中包含三个字段。我们将一个名为people.bin的二进制文件打开,并使用read函数读取一个Person结构体。read函数的第一个参数是一个指向存储读取数据的缓冲区的指针,第二个参数是缓冲区的大小。要将读取的二进制数据存储在使用的数据结构中,我们需要使用reinterpret_cast指令进行类型转换。

最后,我们输出读取到的Person数据的字段。完成后,我们需要调用close函数关闭文件。

总的来说,C++二进制文件读取是一种常见的操作,它为我们提供了对二进制数据流的访问和处理。在C++中,我们可以使用fstream类来打开、读取和写入二进制文件,以便使用更广泛的应用程序场景。

  
  

评论区