获得字符串流的正确大小,以便我可以将其放入缓冲区

时间:2013-11-21 07:24:35

标签: c++ boost stringstream

以下是一些示例代码

std::stringstream ss;
boost::archive::binary_oarchive oa(ss);
oa << newMat;
int size = ss.tellp();
void* matBin = malloc(size);
memcpy(matBin,ss.str().c_str(), size);

基本上我试图将一些二进制数据存储到数据库中。此代码应将矩阵转换为二进制数据(不要担心boost存档的细节),并且我试图将数据存储到缓冲区中。但是,我不确定ss.tellp()是否是确定二进制数据大小的正确方法。

任何人都可以确认这是否是确定ss大小的正确方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

喜欢这个

int size = ss.str().size();

但我认为没有理由说明为什么说法不会起作用。