对QT中QBitArray类进行简单剖析

我们知道Qt中的QBitArray类支持在位(bit)的层次上进行数据操作。本文剖析该类在二进制文件读写时的一些要点。另外,在Qt中,QDataStream类对于二进制文件的读写提供了诸多便利,需要注意的是QBitArray的读写依赖于QDataStream类。 使用QBitArray向文件中写数据: 复制代码 QFile file("C:\\Users\\lenovo\\Desktop\\测试"); file.open(QIODevice::WriteOnly);//只写 QDataStream input(&file); QBitArray bit(5);//构造大小为5的位数组 bit[0]=1;bit[1]=0;bit[2]=0;bit[3]=1;bit[4]=1; input<>bit;//从文件中读取数据,可以得到10011 file.close(); 复制代码   上面只是读写了一个简单的位数组,是最简单的例子。但是当我们需要连续多次的读写这种位数组时,甚至想要一位一位读取这些位信息时,该如何处理呢? 先明确一句话:在进行读操作时,无法根据指定的QBitArray位数组的大小(size)来读取。也就是说实际上读取到的size()大小,与自己设定的大小并不一致。(这个结论个人实验得出) 以如下代码为例: 复制代码 QFile file("C:\\Users\\lenovo\\Desktop\\测试");//该文件中已经存在位信息10011 file.open(QIODevice::ReadOnly);//只读 QDataStream output(&file); QBitArray bit(3);//此处我设置位数组的大小为3,我只想读取3位二进制信息 output>>bit;//读取 qDebug()<
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信