我想用 QByteArray 读取一个文件,但问题是它按字节读取,我想要 16 位整数数组。这是我的代码...
QByteArray fileBuf;
sprintf_s(filepath, "c:/file.bin");}
myfile.setFileName(filepath);
if(!myfile.open(QIODevice::ReadOnly)) return;
fileBuf=myfile.readAll();
这是在内部查找值的测试
qint16 z;
for(int test =0; test < 5 ; test++)
{
z= (fileBuf[i]);
qDebug()<< i<<"is="<<z;
结果:
0 is= -88 (// in binary// 1111 1111 1010 1000)
1 is= -2 (// in binary// 1111 1111 1111 1110)
2 is= -64
3 is= -3
4 is= 52
这些是因为 8 位数组我需要 16 位,即 .. 值在 0 = -344 (//binary//1111 11110 1010 1000)
最佳答案
QFile myfile;
myfile.setFileName("c:/file.bin");
if(!myfile.open(QIODevice::ReadOnly)) return;
QDataStream data(&myfile);
data.setByteOrder(QDataStream::LittleEndian);
QVector<qint16> result;
while(!data.atEnd()) {
qint16 x;
data >> x;
result.append(x);
}
关于c++ - 如何使用 QByteArray 读取 16 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802336/