C++中是否存在二进制内存流?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (331)

我通常用stringstream写入内存中的字符串。是否有一种方式在二进制模式下写入字符缓冲区?代码:

stringstream s;
s << 1 << 2 << 3;
const char* ch = s.str().c_str();
提问于
用户回答回答于

只用字符,而不是整数。

s << char(1) << char(2) << char(3);
用户回答回答于

若要将二进制数据读写到流(包括字符串流),使用read()和write()成员函数

unsigned char a(1), b(2), c(3), d(4);
std::stringstream s;
s.write(reinterpret_cast<const char*>(&a), sizeof(unsigned char));
s.write(reinterpret_cast<const char*>(&b), sizeof(unsigned char));
s.write(reinterpret_cast<const char*>(&c), sizeof(unsigned char));
s.write(reinterpret_cast<const char*>(&d), sizeof(unsigned char));

s.read(reinterpret_cast<char*>(&v), sizeof(unsigned int)); 
std::cout << std::hex << v << "\n";

扫码关注云+社区

领取腾讯云代金券