21xrx.com
2024-11-22 05:51:54 Friday
登录
文章检索 我的文章 写文章
使用C++将string保存为二进制文件
2023-06-30 14:32:48 深夜i     --     --
C++ string 二进制文件 保存

C++是一种流行的编程语言,被广泛应用于各种类型的软件开发。而将string保存为二进制文件,也是一项常见的编程任务。本文将介绍如何使用C++来完成这一任务。

首先,我们需要使用C++标准库中提供的文件流对象来进行文件的读写操作。文件流对象分为输入流和输出流两种类型。其中,输出流可以用于将数据写入文件,而输入流则可以从文件中读取数据。

接下来,我们需要将string对象转化为C风格字符串,并将其写入到文件中。C风格字符串是以字符数组的形式表示的字符串,可以使用strcpy函数将string对象转化为C风格字符串。然后,我们使用文件输出流对象将字符串写入到二进制文件中。

具体的代码实现如下:


#include <iostream>

#include <fstream>

#include <cstring>

using namespace std;

int main() {

  string str = "Hello, world!"; // 定义一个string对象

  char cstr[str.length() + 1]; // 创建一个字符数组,长度为string对象长度+1,以存储字符串结尾的空字符

  strcpy(cstr, str.c_str());  // 将string对象转化为C风格字符串

  ofstream outfile("test.bin", ios::out | ios::binary); // 创建一个文件输出流对象,以二进制格式写入文件

  outfile.write(cstr, sizeof(cstr)); // 将字符串写入到文件中

  outfile.close(); // 关闭文件输出流

  return 0;

}

上述代码中,我们首先定义一个string对象,并使用strlen函数获取它的长度。然后,我们创建一个字符数组来存储C风格字符串,并使用strcpy函数将string对象转化为C风格字符串。接着,我们使用文件输出流对象将字符串写入到文件中,使用sizeof函数获取字符数组的大小,并调用write函数将其写入到文件中。最后,我们关闭文件输出流。

在读取二进制文件时,我们可以使用文件输入流对象,并使用read函数将内容读取到字符数组中。读取后,我们将字符数组转化为string对象,即可得到我们所需的字符串。具体代码实现如下:


#include <iostream>

#include <fstream>

#include <cstring>

using namespace std;

int main() {

  ifstream infile("test.bin", ios::in | ios::binary); // 创建一个文件输入流对象,以二进制格式读取文件

  char cstr[100]; // 定义一个字符数组,用于存储读取到的字符串

  infile.read(cstr, sizeof(cstr)); // 从文件中读取字符串

  string str = string(cstr); // 将字符数组转化为string对象

  infile.close(); // 关闭文件输入流

  cout << "Read from file: " << str << endl; // 输出读取到的字符串

  return 0;

}

上述代码中,我们首先创建一个文件输入流对象,并使用read函数将数据读取到字符数组中。接着,我们使用string构造函数将字符数组转化为string对象,并输出读取到的字符串。最后,我们关闭文件输入流。

综上所述,使用C++将string保存为二进制文件是一项常见的编程任务,可以使用C++标准库中提供的文件流对象来进行文件的读写操作,具体实现方式可以参照本文介绍的示例代码。

  
  

评论区

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