21xrx.com
2024-12-22 19:57:04 Sunday
登录
文章检索 我的文章 写文章
C++二进制文件读写
2023-07-10 12:19:22 深夜i     --     --
C++ 二进制文件 读取 写入 文件操作

C++是一种流行的编程语言,其对二进制文件的读写支持非常强大。二进制文件是一种用于存储计算机数据的文件,在此类文件中数据以二进制形式进行编码,不像文本文件那样使用字符。

在C++中,开发者可以使用iostream头文件中的fstream库来实现二进制文件的读写。fstream库主要提供了3个主要类:

1. ofstream - 用于写入二进制数据到文件。

2. ifstream - 用于读取二进制数据从文件。

3. fstream - 可以用于读取和写入二进制数据到文件。

以下是一个简单的例子,该例子演示了如何使用fstream库的ofstream类将一个二进制文件作为输出流写入磁盘:


#include <iostream>

#include <fstream>

using namespace std;

int main() {

  ofstream out("example.bin", ios::binary);

  int data[] = 1;

  out.write((char*)data, sizeof(data));

  out.close();

  return 0;

}

在此例子中,我们使用了ofstream类将数据写入文件example.bin。"ios::binary"表示文件以二进制模式打开。使用write()函数将数据作为字符数组写入文件中。本例中是一个包含5个整数的数组。要注意的是,使用*sizeof()计算数组的长度,它实际上是以字节为单位计算的。

接下来,我们演示如何使用fstream库的ifstream类从二进制文件中读取数据:


#include <iostream>

#include <fstream>

using namespace std;

int main() {

  ifstream in("example.bin", ios::binary);

  int data[5];

  in.read((char*)data, sizeof(data));

  in.close();

  for (int i = 0; i < 5; i++) {

    cout << data[i] << ' ';

  }

  return 0;

}

在此示例中,我们使用了ifstream类从example.bin文件中读取数据。通过将数据读入字符数组,我们可以轻松地将其转换为其他数据类型。

fstream类结合了ofstream和ifstream扩展。它支持读取和写入操作:


#include <iostream>

#include <fstream>

using namespace std;

int main() {

  fstream file("example.bin", ios::binary | ios::in | ios::out);

  int data[5] = 5;

  file.write((char*)data, sizeof(data));

  file.seekg(0);

  int rdata[5];

  file.read((char*)rdata, sizeof(rdata));

  for (int i = 0; i < 5; i++) {

    cout << rdata[i] << ' ';

  }

  file.close();

  return 0;

}

此次示例演示了如何使用fstream类在同一个二进制文件中进行读写操作。我们首先使用write()函数将数据写入文件中,然后使用seekg()重置文件指针,以便从开头读取数据。最后,我们使用read()函数将数据读取到数组中进行输出。

总之,通过使用C++中的fstream库,开发者可以轻松地读取和写入二进制文件。与文本文件相比,二进制文件使用相对较少的磁盘空间,并且可以更快地读取和写入数据。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复