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++基本功之 对象序列化

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

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

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

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

C++序列化与反序列化 初步的探索~
  • Kiritow
  • Kiritow
  • 2016年11月11日 15:47
  • 2288

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

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

像原生C/C++,序列化Java对象

你曾经希望能够将Java对象object快速地转化为字节流,就像原生语言Java?如果你使用标准的Java Serialization,你会对它的性能感到非常失望。Java Serialization...

C++ 对象序列化 保存对象.docx

  • 2013年04月16日 13:45
  • 17KB
  • 下载

java与c++中的对象序列化分析

有时候我们在开发项目的时候,对于数据的保存 我们通常是直接将数据保存到磁盘上面 ,但是这样操作起来非常的不方便 ,尤其是在大型的项目开发中。  对象的序列化 可以将对象以数据的形式存储到文件中;反之...

Visual C++中对象的序列化与文件I/O研究【转帖】

串行化 文件I/O

C++对象序列化方案介绍

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

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

题目:在C++里面,两台机器之间的函数相互调用,需要传递对象。采用什么样的方法可以把C++对象序列化之后,在两台机器之间,像字符串一样传输。解法:想到boost库中是有一个序列化类的。在这里,我们直接...
  • ju136
  • ju136
  • 2012年08月29日 17:45
  • 2056
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C/C++对象的序列化
举报原因:
原因补充:

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