QDatastream将unsigned char*缓冲区中的数据写入

3

我该如何将unsigned char*缓冲区中的数据写入到QDatastream中?有writeBytes和writeRawData两种方法,但它们只接受const char*类型的参数。我能否使用unsigned char*类型的参数进行操作?

1个回答

5

您可以直接转换为const char*

unsigned char array[] =  {1,2,3,4,5};
QByteArray ba;
QDataStream datastream(&ba,QIODevice::ReadWrite);
datastream.writeRawData((const char*) array,5);

不会影响缓冲区中的数据吗? - bossman
不,指针只是一个内存地址。上述命令将直接从该内存地址逐字节地复制5个字节。当你从缓冲区读取这些字节时,需要小心将指针强制转换回无符号字符型。 - Jimmy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接