21xrx.com
2024-05-20 09:46:19 Monday
登录
文章检索 我的文章 写文章
使用C++将String类型数据保存为二进制文件
2023-07-05 10:18:51 深夜i     --     --
C++ String 二进制文件 保存 数据

在C++中,我们经常需要使用String类型数据,如何将这些数据以二进制的形式进行保存呢?下面给出一种方法,供大家参考。

首先,我们需要包含头文件 ,然后打开一个输出文件流,并以二进制写入的模式打开文件。

接下来,我们由于String类型并不是一种基本的数据类型,所以需要将其转换成字符数组,在保存之前将字符数组的长度写入文件中,这样在读取的时候可以先读取长度,然后再根据长度读取字符数组,最后将字符数组转换为String类型即可。

具体的代码如下所示:


#include <fstream>

#include <string>

int main()

{

  std::ofstream output("data.bin", std::ios::out | std::ios::binary);

  if (!output)

  

    // error handling

  

  std::string str = "Hello, world!";

  int length = str.length();

  // 写入字符数组的长度

  output.write(reinterpret_cast<const char*>(&length), sizeof(length));

  // 将字符串转换成字符数组

  const char* charArray = str.c_str();

  // 写入字符数组

  output.write(charArray, length * sizeof(char));

  output.close();

  return 0;

}

可以运行上面的代码,将字符串"Hello, world!"保存为data.bin文件,在读取时可以根据保存的方式进行读取,具体的代码如下所示:


std::ifstream input("data.bin", std::ios::in | std::ios::binary);

if (!input)

  // error handling

int length;

// 读取字符数组的长度

input.read(reinterpret_cast<char*>(&length), sizeof(length));

// 分配空间存储字符数组

char* charArray = new char[length + 1];

// 读取字符数组

input.read(charArray, length * sizeof(char));

charArray[length] = '\0';

// 将字符数组转换成字符串

std::string str(charArray);

delete[] charArray;

input.close();

以上便是一种将String类型数据保存为二进制文件的方法,可以根据自己的需求进行使用和改进。

  
  

评论区

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