【问题标题】:quint16 on qbytearrayqbytearray 上的 quint16
【发布时间】:2012-02-25 07:36:10
【问题描述】:

我需要在 qbytearray 的第一个位置添加一个 quint16 并在阅读后:我该怎么做?

我试过这个:

quint16 pos = 0;
QFile file(m_pathFile);
if (file.open(QFile::ReadOnly))
{
    qDebug() << "el fichero existe";
    m_udpSocket->bind(m_port);
    QByteArray datagram;
    while (!file.atEnd())
    {
        datagram.begin();
        datagram.append(pos++);
        datagram = file.read(m_blockSize);
        qDebug() << "Sec" << datagram.at(0);
    }
 }

非常感谢

我得到了添加:

datagram.begin();
datagram.setNum(pos, 10);
datagram.append(file.read(m_blockSize));

但我不知道作为阅读它

谢谢

【问题讨论】:

    标签: qt qbytearray


    【解决方案1】:

    好的,首先,datagram.begin() 是无用的,因为它返回一个您根本没有分配的迭代器。如果您想在 QByteArray 的第一个位置插入一个数字,您可以执行以下操作:

    datagram.insert(0, QString::number(pos++));
    

    要阅读它,最简单的方法是像这样使用QTextStream

    QTextStream str(datagram);
    quint16 num;
    str >> num;
    

    另外,在发帖前看看docs,因为如果你知道如何搜索,Qt 真的很简单而且很有帮助(相信我,这并不难)。

    【讨论】:

      猜你喜欢
      • 2015-08-20
      • 2012-04-25
      • 2018-02-25
      • 2016-07-07
      • 2013-12-25
      • 2023-03-24
      • 2014-03-07
      • 2016-08-19
      • 2012-12-17
      相关资源
      最近更新 更多