如何在内存中的数据缓冲区上使用常规 std::basic_istream::read、std::basic_ostream::write?
How to use regular std::basic_istream::read, std::basic_ostream::write on a buffer of data in memory?
我有一个 QByteArray
并且想像使用普通文本文件一样使用它。我怎样才能在上面使用像 std::basic_istream::read
这样的函数?
QByteArray 数据类型接近容器,而不是流。你不能像处理文本文件一样处理它,除非你继承 std::streambuf class 在内部处理 QByteArray。
如果不在意性能,也可以考虑将std::stringstream转为QByteArray,
std::stringstream ss;
// write to ss ...
.
.
QByteArray qdata = QByteArray::fromStdString(ss.str());
读操作,
QByteArray qdata; // consider qdata is already filled with data.
std::stringstream ss(qdata.toStdString());
我有一个 QByteArray
并且想像使用普通文本文件一样使用它。我怎样才能在上面使用像 std::basic_istream::read
这样的函数?
QByteArray 数据类型接近容器,而不是流。你不能像处理文本文件一样处理它,除非你继承 std::streambuf class 在内部处理 QByteArray。
如果不在意性能,也可以考虑将std::stringstream转为QByteArray,
std::stringstream ss;
// write to ss ...
.
.
QByteArray qdata = QByteArray::fromStdString(ss.str());
读操作,
QByteArray qdata; // consider qdata is already filled with data.
std::stringstream ss(qdata.toStdString());