21xrx.com
2024-05-20 09:06:49 Monday
登录
文章检索 我的文章 写文章
C++读写二进制文件指南
2023-07-08 02:36:21 深夜i     --     --
C++ 读写 二进制文件 指南

C++语言可以用来读写二进制文件,二进制文件是一种特殊的文件格式,保存着计算机中的二进制数据,例如图片、音频、视频等。相对于文本文件,二进制文件更加高效,可以大大缩短系统的读写时间。下面就为大家介绍如何在C++中读写二进制文件。

1. 打开二进制文件

使用C++中的fstream库,可以通过以下方式打开二进制文件:


#include <fstream>

#include <iostream>

using namespace std;

int main()

{

  fstream binaryFile("filename.bin", ios::binary | ios::in | ios::out);

  if(!binaryFile.is_open())

    cout << "Failed to open file" << endl;

    return 1;

  

  //进行读写操作

  binaryFile.close();

  return 0;

}

其中filename.bin为要打开的二进制文件名,ios::binary表示以二进制模式打开文件,ios::in表示打开用于读取,ios::out表示打开用于写入。如果二进制文件不存在,则会创建一个新的文件。

2. 写入二进制文件

在打开二进制文件后,就可以将数据写入其中,例如:


float floatNum = 3.14159;

int intNum = 12345;

bool boolValue = true;

char charValue = 'A';

binaryFile.write(reinterpret_cast<char*>(&floatNum), sizeof(floatNum));

binaryFile.write(reinterpret_cast<char*>(&intNum), sizeof(intNum));

binaryFile.write(reinterpret_cast<char*>(&boolValue), sizeof(boolValue));

binaryFile.write(&charValue, sizeof(charValue));

其中reinterpret_cast是强制类型转换,将变量的地址转为char指针,然后写入二进制文件中。然后使用sizeof获取变量大小,确保写入的数据大小与变量大小相同。

3. 读取二进制文件

读取二进制文件的方式类似于写入,可以使用以下方式:


float floatNum;

int intNum;

bool boolValue;

char charValue;

binaryFile.read(reinterpret_cast<char*>(&floatNum), sizeof(floatNum));

binaryFile.read(reinterpret_cast<char*>(&intNum), sizeof(intNum));

binaryFile.read(reinterpret_cast<char*>(&boolValue), sizeof(boolValue));

binaryFile.read(&charValue, sizeof(charValue));

与写入二进制文件类似,使用reinterpret_cast将char指针转为变量地址,然后使用read读取二进制文件中的数据。

4. 结束操作

读写二进制文件后,必须要将文件关闭,释放内存资源。


binaryFile.close();

以上就是C++读写二进制文件的基本方法,需要注意的是,二进制文件的读写需要更加谨慎,因为任何小错误都可能导致文件损坏。写入数据时要确保数据类型、大小、顺序正确无误,读取数据时也要保证读取的数据类型、大小、顺序与写入时相同。

  
  

评论区

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