QByteArray的int总是给0

时间:2019-12-27 12:20:09

标签: qt qbytearray

我尝试发送数据抛出qtcpsocket并使用QByteArray。我发送的数据过大,然后尝试像这样QByteArray to Int conversion转换为int。 但始终为0。代码转换示例:

QString ss = "bca";
int aaa;
QByteArray b;
QDataStream stream(&b, QIODevice::ReadWrite);

stream << ss.toUtf8().size();
stream >> aaa;

在此示例中,aaa始终为0,但是ss.toUtf8()。size()不是。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

QString ss = "bca";
int aaa;
QByteArray b;
QDataStream stream(&b, QIODevice::ReadWrite);

stream << ss.toUtf8().size();
stream.device().seek(0); // add this code
stream >> aaa;

QByteArray的内部指针位于末尾,因此无法读取任何内容。