这里是一些示例代码
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 不能正常工作。
关于c++ - 获取字符串流的适当大小,以便我可以将其放入缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114848/