获取字符串流的适当大小,以便将其放入缓冲区
Obtaining the proper size of a stringstream so I can put it inside a buffer
下面是一些示例代码
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不能正常工作。
相关文章:
- 如何使用字符串find_first_of缓冲区形式(size_t n 参数)
- Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- 清除输入缓冲区后未提取字符串流
- 协议缓冲区字符串字段的文本编码
- 如何避免将数据缓冲区的额外副本复制到字符串?
- 在 node.js 中将缓冲区从 C++ 转换为 UTF-8 字符串
- 将指针作为缓冲区传递到第一个字符串元素
- 为什么在调用C#DLL时不需要提供字符串缓冲区
- 如何在C++中对静态缓冲区执行字符串格式化?
- 自动截断和 null 终止缓冲区溢出中的字符串缓冲区
- 在协议缓冲区 c++ 中反序列化字符串数组
- 套接字缓冲区到字符串
- 如果用户输入两个或多个由空格分隔的字符串C++如何防止缓冲区溢出?
- 二进制字符数组转换为字符串流并从缓冲区弹出
- 为什么错误 C6386 缓冲区溢出与 strsafe.h 字符串 Cch 函数
- 将字符缓冲区转换为字符串
- std::字符串与字节缓冲区(C++的差异)
- strcpy_s将超过字符串长度的字符串复制到目标缓冲区(用 0xFE 填充)
- std::字符串流,直接输出缓冲区/字符串结果访问,避免复制
- visual 在指向缓冲区(字符串 " ")的空指针上使用 sizeof() C++ 以获得以字节为单位的大小?