C/C++对象的序列化

原创 2017年08月28日 20:33:51

序列化 (Serialization):也称为串行化指的是将一个内存对象 转换成 一串字节数据,并可以恢复。

序列化:将对象转成一串字节,这一串字节可以保存至文件,也可以通过网络传输。

下面是代码:

IDE为vs2013

#include <stdio.h>
#include <string>
using namespace std;

class Student
{
public:
	int id;
	string name;
};

//序列化
int Serialize(const Student &s, char output[])
{
	int count = 0;
	memcpy(output, &s.id, 4);
	count += 4;
	memcpy(output + count, s.name.c_str(), s.name.length());
	count += s.name.length();
	return count;
}

//反序列化
int Deserialize(Student &s, const char *input, int count)
{
	int offset = 0;
	memcpy(&s.id, input, 4);
	offset += 4;
	s.name.append(input + offset, count - offset);

	return 0;
}

int main()
{
	char buf[128];
	int count = 0;

	Student s1;
	s1.id = 110120119;
	s1.name = "雅瞄蝶";
	count = Serialize(s1, buf);

	Student s2;
	Deserialize(s2, buf, count);

	return 0;
}




版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq78442761/article/details/77654067

C# 的三种序列化方法

序列化是将一个对象转换成字节流以达到将其长期保存在内存、数据库或文件中的处理过程。它的主要目的是保存对象的状态以便以后需要的时候使用。与其相反的过程叫做反序列化。 序列化一个对象 为了序列...
  • u011854789
  • u011854789
  • 2017-01-14 11:00:30
  • 1082

C++序列化方案

1. 什么是序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中, 然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。 这个将程序数据转化成能被存储并传输的...
  • fireroll
  • fireroll
  • 2016-05-18 18:09:48
  • 681

面试题整理-C++ 序列化对象

题目:在C++里面,两台机器之间的函数相互调用,需要传递对象。采用什么样的方法可以把C++对象序列化之后,在两台机器之间,像字符串一样传输。解法:想到boost库中是有一个序列化类的。在这里,我们直接...
  • ju136
  • ju136
  • 2012-08-29 17:45:29
  • 2105

C++序列化与反序列化的简单探索

C++序列化与反序列化 初步的探索~
  • Kiritow
  • Kiritow
  • 2016-11-11 15:47:21
  • 4944

使用C++进行对象序列化

1 什么是序列化 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被...
  • wojiushiwoba
  • wojiushiwoba
  • 2017-03-02 16:18:15
  • 414

序列化(Serialization)一个对象

1. 序列化的概念         序列化: 将数据结构或对象转换成二进制串的过程,简单理解就是将对象转换为容易传输的格式的过程。 2. 序列化的作用    序列化是为了保存内存中各种对象的状态,并且...
  • xby_869151205
  • xby_869151205
  • 2016-08-06 17:19:01
  • 664

使用C++进行对象序列化

什么是序列化 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为...
  • netanimals
  • netanimals
  • 2012-02-21 11:20:52
  • 23662

C/C++结构体序列化配置模板化

用C/C++写后台服务程序的工程师也许经常会遇到这样的问题:总有一些重要的数据是通过字符串的方式输出,比如jsonp、xml、pvlog等等。比如日志格式,往往都是通过snprintf/std::co...
  • catxl313
  • catxl313
  • 2014-05-09 23:39:59
  • 5362

C++对象的JSON序列化与反序列化探索

一:背景 作为一名C++开发人员,我一直很期待能够像C#与JAVA那样,可以轻松的进行对象的序列化与反序列化,但到目前为止,尚未找到相对完美的解决方案。 本文旨在抛砖引玉,期待有更好的解决方案;同...
  • TragicGuy
  • TragicGuy
  • 2013-06-22 14:26:54
  • 9177

C# 单文件存放多个<em>序列化对象</em>

单文件存放多个<em>序列化对象</em>,C#源代码 VS2008 综合评分:5(18位用户评分) 收藏评论(8)举报 所需: 3积分/<em>C</em>币 下载个数: 65 开通VIP <em>C</em>币充值 立即下载 ...
  • 2018年03月19日 00:00
收藏助手
不良信息举报
您举报文章:C/C++对象的序列化
举报原因:
原因补充:

(最多只允许输入30个字)