有个文件是二进制形式,float格式的,我读取这个文件到QDataStream中后,想要接着按照float格式来读取数据,我事先申请了一个float型该文件大小的一段空间,我想要把数据装入进去,因为后面要根据这些数据进行像素点的设置生成相应的灰度图。。
但是卡在这里了,部分代码如下:
float *p = new float(695 * 374 * 4);
QFile file("a.coh");
if(!file.open(QIODevice::ReadOnly))
{
return;
}
QDataStream out(&file);
out >> p;
int i = 0;
while(!out.atEnd())
{
//这里肯定有错误,但是不知道怎么写
*p = out.readBytes()
i += 4;
}
新手求教了。。高手随便指点下就对我是极大的帮助
------解决方案--------------------
http://qimo601.iteye.com/admin/blogs/1489839
看看我写的一篇日志。
Qt读取double型的二进制数据文件,一般用QDataStream 序列化读取数值,存储到double数组中。
但是这个方法,比C的fread( void* buffer, size_t size, size_t count, FILE* stream )方法,慢好几倍。