C ライブラリのシリアル化および逆シリアル化ガイド シリアル化: 出力ストリームを作成し、アーカイブ形式に変換します。オブジェクトをシリアル化してアーカイブします。逆シリアル化: 入力ストリームを作成し、アーカイブ形式から復元します。アーカイブからオブジェクトを逆シリアル化します。実践例: シリアル化: 出力ストリームの作成。アーカイブ オブジェクトを作成します。オブジェクトを作成してアーカイブにシリアル化します。逆シリアル化: 入力ストリームを作成します。アーカイブ オブジェクトを作成します。オブジェクトを作成し、アーカイブから逆シリアル化します。
はじめに
シリアル化と逆シリアル化の変換は、次のプロセスです。オブジェクトをバイト ストリームに変換し、バイト ストリームからオブジェクトを再構築します。 C では、関数ライブラリを使用してこの機能を実装できます。この記事では、バイナリ アーカイブ関数ライブラリ (boost::archive) を使用してシリアル化および逆シリアル化する方法を紹介します。
シリアル化
オブジェクトをシリアル化するには、出力ストリームを作成し、boost::archive::binary_oarchive
クラスを使用する必要があります。アーカイブ形式に変換します。
#include <boost/archive/binary_oarchive.hpp> // 创建一个输出流 std::ofstream output("myfile.dat"); // 创建一个存档对象 boost::archive::binary_oarchive archive(output); // 将对象序列化到存档中 archive << myObject;
逆シリアル化
オブジェクトを逆シリアル化するには、入力ストリームを作成し、boost::archive::binary_iarchive
クラスを使用してそれを復元する必要があります。アーカイブ形式から。
#include <boost/archive/binary_iarchive.hpp> // 创建一个输入流 std::ifstream input("myfile.dat"); // 创建一个存档对象 boost::archive::binary_iarchive archive(input); // 从存档中反序列化对象 MyObject loadedObject; archive >> loadedObject;
実際的なケース
person
という名前のクラスがあり、name
と age#が含まれているとします。 ## 2 つの属性。これをシリアル化および逆シリアル化する方法は次のとおりです。
#include <boost/archive/binary_oarchive.hpp>
// 创建一个输出流
std::ofstream output("person.dat");
// 创建一个存档对象
boost::archive::binary_oarchive archive(output);
// 创建一个 Person 对象
Person person("John", 30);
// 将 Person 对象序列化到存档中
archive << person;
#include <boost/archive/binary_iarchive.hpp>
// 创建一个输入流
std::ifstream input("person.dat");
// 创建一个存档对象
boost::archive::binary_iarchive archive(input);
// 创建一个 Person 对象
Person loadedPerson;
// 从存档中反序列化 Person 对象
archive >> loadedPerson;
std::cout << loadedPerson.getName() << ", " << loadedPerson.getAge() << std::endl;
りー
以上がC++ 関数ライブラリはシリアル化と逆シリアル化をどのように実行しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。