• 7357阅读
  • 4回复

[提问]qt读取二进制文件,如何将数据装入到一个float型缓冲区中?? [复制链接]

上一主题 下一主题
离线celia_jun
 
只看楼主 倒序阅读 楼主  发表于: 2012-03-25
— 本帖被 XChinux 从 Qt安装与发布 移动到本区(2013-04-23) —
关键词: 二进制float
有个文件二进制形式,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;
    }
新手求教了。。高手随便指点下就对我是极大的帮助
离线celia_jun
只看该作者 1楼 发表于: 2012-03-25
自己顶啊
离线jdwx

只看该作者 2楼 发表于: 2012-03-25
回 1楼(celia_jun) 的帖子
就是一个float类型的数组,用不着指针。
     float p;
    QFile file("a.coh");
    if(!file.open(QIODevice::ReadOnly))
    {
        return;
    }
    QDataStream in(&file);        
    while(!out.atEnd())
    {
        in >> p;
        //将p存进数组。      
    }
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线celia_jun
只看该作者 3楼 发表于: 2012-03-25
回 2楼(jdwx) 的帖子
感谢回复。
不过
float p;然后直接in >> p; 没有申请空间,直接存入??
离线red_stone1

只看该作者 4楼 发表于: 2013-04-23
请问楼主问题解决了吗?我最近也遇到同样问题,关于读取文件,在窗口绘图。楼主能指点一下吗?或者相应的源码啦。
快速回复
限100 字节
 
上一个 下一个