首先是我的代码。
QByteArray buff;
QDataStream stream(&buff, QIODevice::ReadWrite);
stream.setVersion(QDataStream::Qt_4_7);
stream << 5;
stream << 6;
qDebug() << buff;
int x;
int y;
stream >> x >> y;
qDebug() << x << y;
我预计 x 为 5,y 为 6。但它显示 0 0 这是输出
"
0 0
最佳答案
正如 Frank 提到的,QDataStream
仍然位于结束位置(写入数据后)。如果您不想创建新流,还应该可以调用stream.reset()
将流的内部位置置于开头。或者类似stream.seek(0)
。
关于qt - QDataStream序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5621426/