Qt中如何将文件读出并存放在一个指针里 5C

原程序是用CFile::Read(pionter,length)来实现的,我尝试用了QDataStream::readRawData(pointer,length)来读,但是得到的pointer为空,下面附上CFile实现的代码和我写的代码

            pOffsetBuffer = new unsigned short[dwRows*dwColumns*(sizeof(unsigned short))];

                        if (file.open(strOffsetFile,QFile::typeBinary|CFile::modeRead))
            {// 打开文件

                UINT nByte = file.Read(pOffsetBuffer, dwRows*dwColumns*sizeof(unsigned short)); // 读取文件
                file.Close();

                bOffsetOK = true;
            }
  pOffsetBuffer = new unsigned short[dwRows*dwColumns*(sizeof(unsigned short))];

    QFile rawfile(strOffsetFile);
            if (rawfile.open(QIODevice::ReadOnly))
            {// 打开文件

                QDataStream in(&rawfile);

                char* cp= new char[dwRows*dwColumns*(sizeof(unsigned short))];

                int nByte = in.readRawData(cp,dwRows*dwColumns*(sizeof(unsigned short)));

                memcpy(pOffsetBuffer,cp,dwRows*dwColumns*(sizeof(unsigned short)));

3个回答

你直接用ReadAll,全部读出,接受用字符串类型;
你那个是接受类型错了吧,你仔细看看帮助文档就知道了。

QFile 可以直接readall,用QByteArray接收,再转为char*就好了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!