【发布时间】:2019-04-25 09:02:39
【问题描述】:
我有一个像这样的 QByteArray 变量:
QByteArray read= port->readAll();
现在我想将读取转换为数组以写入二进制文件,如下所示:
int b[] = {}; // lengh of array is port->readAll() size
QFile myFile("e:/test/test.dat");
if(!myFile.open(QIODevice::WriteOnly))return;
myFile.write((char*)b,sizeof(int));
myFile.flush();
myFile.close();
【问题讨论】:
-
你为什么不能使用
data()- 你需要它比QByteArray更长寿,还是有其他原因?顺便说一句,我真的不会将名称read用于变量 - 与流行的库或系统调用名称太相似。 -
我的问题是将 QByteArray 转换为 Array。
-
既然您可以访问
QByteArray的内容以用于您显示的代码等目的,为什么需要这样做?myFile.write(read.data(), sizeof (int))没有实现的目标并不明显。或者,如果您打算编写整个数组,myFile.write(read.data(), read.size())或等效地,只需myFile.write(read)。 -
我必须从调制解调器读取所有数据:QByteArray read= port->readAll();并写出来
-
那么你为什么不能像我展示的那样将
QByteArray传递给QFile::write()?目前还不清楚为什么这对你不起作用。
标签: c++ qt qbytearray