1
我想转换一个int数组以字符数组,并将其写入这样的流:序列化/反序列化int数组以字符数组
size_t arraySize = 10;
int* intArray = new int[arraySize];
std::ostringstream buffer;
buffer << "foo1=test,arraySize=10,array=";
char* charArrayPtr = reinterpret_cast<char*>(intArray);
buffer.write(charArrayPtr,arraySize*sizeof(int));
auto str = buffer.str();
一切正常,但有一个问题,我真的无法缠住我的头。比方说,我想反序列化字符串,为了方便起见,我想分割字符串并使用分隔符“,”(例如)。
这只会工作,直到int数组被转换为char *最终会匹配定界符,以及因为该阵列的尺寸可以不同(10-10000000)
的另一种方式是将分割字符串一直到array=
,但如果我想稍后添加更多内容,代码会变得更加难看,甚至更加混乱。
你们是否碰巧有任何不包含其他库的建议?
你想实现什么?我不明白你为什么要添加一个分隔符,因为你无法信任它们。有像44这样的数字也会在你的数据流中创建一个''''。 – JojOatXGME
另一个想法可能会让你感兴趣。有一种叫做*字节顺序*的东西。一个x86架构的CPU使用* little endian *,其他架构可能会使用另一个架构。如果你想与其他系统进行通信,最好将整数转换为* big endian *(在许多协议中也称为*网络字节顺序*)。 – JojOatXGME