首页| 论坛| 消息

标题:求助关于QT读取二进制文件
作者:winter978
日期:2016-08-01 15:00
内容:

各位达人:
请教一个问题:我现在想读取一个二进制文件的前3200字节,我看了QT帮助里面可以使用DataStream里面的readbytes来实现。
帮助里面是这样描述的:
QDataStream & QDataStream::readBytes ( char *& s, uint &/ )

这样好像读取出来的不是存放在一个字符串里面把?

char *& s----------这里的参数应该怎么填写?


谢谢!


#1 [dbzhang800 08-01 19:58]
不要使用QDataStream,如果这个文件不是你用QDataStream生成的。
#2 [6gongzi 08-02 08:20]
char *buffer= new char[3200+1];
int length= 0;
a->readBytes (buffer, length);
delete [] buffer;
#3 回 dbzhang800 的帖子 [kaon 08-02 08:45]
dbzhang800:不要使用QDataStream,如果这个文件不是你用QDataStream生成的。 (2016-08-01 19:58) 
用int QDataStream::readRawData(char *s, int len)
这个应该可以吧?
#4 回 kaon 的帖子 [dbzhang800 08-02 12:16]
kaon:用int QDataStream::readRawData(char *s, int len)
这个应该可以吧? (2016-08-02 08:45) 
可以,但直接用QIODevice/QFile的read不是比这更简单直接么?
#5 [jnny_cn 08-02 21:27]
QString _str_src_file_name = ui->edtFilePath->text();
QFile _infile(_str_src_file_name);
if(_infile.open(QIODevice::ReadOnly))
{
QDataStream _in(&_infile);
char _s;
_in.readRawData(&_s,1);
}
else
{
}

读取一个字节的,可改写一次读取多字节

<< 1 2 >> (1/2)

回复 发表
主题 版块