• 7359阅读
  • 6回复

[提问]Qt如何读取二进制文件中的数据结构 [复制链接]

上一主题 下一主题
离线小炮弹弹
 
只看楼主 倒序阅读 楼主  发表于: 2013-01-16
             我的数据结构存放在了二进制文件中,怎样用Qt把它读出来?
离线XChinux

只看该作者 1楼 发表于: 2013-01-16
QDataStream读。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线小炮弹弹
只看该作者 2楼 发表于: 2013-01-16
回 1楼(XChinux) 的帖子
能举个例子吗,本人对Qt不太熟
离线realfan

只看该作者 3楼 发表于: 2013-01-16
QFile的readAll方法读到QByteArray中,然后按你自己的结构解析
离线小炮弹弹
只看该作者 4楼 发表于: 2013-01-16
为什么就没人举个小例子呢?
离线XChinux

只看该作者 5楼 发表于: 2013-01-16
看文档。Qt的文档相当不错。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线realfan

只看该作者 6楼 发表于: 2013-01-17
//====写==========
QFile file("file.dat");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out << QString("the answer is");
out << (qint32)42;
//====读===============================
QFile file("file.dat");
file.open(QIODevice::ReadOnly);
QDataStream in(&file);
QString str;
qint32 a;
in >> str >> a;

如果是自定义POD数据结构,
T t;
QByteArray ba = file.readAll();
char * p = ba.data();
memcpy(&t, p, sizeof(t)); //或 t = *( (T*)p);
p += sizeof(t); //偏移指针
//继续取值



快速回复
限100 字节
 
上一个 下一个