我正在使用缓冲区,并试图从中获取字符串,但不起作用......
Example:
*void myFunc(QDataStream& in)
{
quint8 v;
in >> v;
// Ok, I caught v value successfuly
QString s;
in >> s;
// Didnt work :<
}*
字符串长度存储在前 2 个字节中...
Thanks
如果字符串没有写成QString
,你需要分别阅读它的长度和内容。
quint8 v;
in >> v;
quint16 length = 0;
in >> length;
// the string is probably utf8 or latin
QByteArray buffer(length, Qt::Uninitialized);
in.readRawData(buffer.data(), length);
QString string(buffer);
您可能必须更改的字节序QDataStream
with QDataStream::setByteOrder
在读取 16 位长度之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)