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;
}




版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

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

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

C++对象的JSON序列化与反序列化探索完结-列表的序列化与反序列化

在前两篇文章中,我们已经完成对普通对象以及复杂对象嵌套的序列化与反序列化,见如下地址: C++对象的JSON序列化与反序列化探索 C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

C++基本功之 对象序列化

稍微正式一点的应用都会用到对象的序列化/反序列化操作,常见的需求包括:对象的持久存储。比如把一个对象存储到文件;在需要的时候,再把对象从文件中读出来;对象的传递。比如要把一个对象通过管道,socket...
  • bfzhao
  • bfzhao
  • 2009-09-10 09:37
  • 4854

C++对象序列化方案对比

C++对象序列化方案对比 序列化是将对象状态信息转换为可存储或传输的过程,序列化时,对象会将当前状态写入到临时或持久性的存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建...

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

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

软件实施工程师项目经验(转)

在项目实施的时候,有些独特的地方,需要有独特的工具来帮助。 前天晚上,和一位做了多年实施项目带领的朋友吃饭。     我笑着跟他说:实施,能不能不实施?!不去人,也不搞实施,把软件卖了就O...

Java数据结构与算法解析(一)——表

本节我们讨论常见常用的数据结构——表。 如果要通俗简单的说什么是表,那我们可以这样说:按顺序排好的元素集合就是表。表的概述抽象数据类型是带有一组操作的一些对象的结合1、定义: 线性表是一个线性结构...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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