获取字符串流的适当大小,以便将其放入缓冲区

Obtaining the proper size of a stringstream so I can put it inside a buffer

本文关键字:缓冲区 字符串 获取      更新时间:2023-10-16

下面是一些示例代码

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大小的正确方法吗?

谢谢!

像这个

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

但我看不出为什么tellp不能正常工作。