当前位置: 代码迷 >> QT开发 >> 问个关于QT二进制读写的有关问题
  详细解决方案

问个关于QT二进制读写的有关问题

热度:240   发布时间:2016-04-25 03:07:45.0
问个关于QT二进制读写的问题?
我有这些一些散点文件
605835.51668886 6073556.38221996 1125.63109397888
605860.50694257 6073557.0806523 1125.61869621277
605885.49719628 6073557.77908465 1125.61047077179
...
...
n
我想把他写入到二进制文件中,该如何操作呢
把这些数据从二进制文件当中读出来,又是如何操作的呢,小弟我初学者,看了网上一些例子,
都是对固定数字进行读写的,这样不固定的就搞不定了,求大神指点

------解决思路----------------------
你直接以二进制的方式打开, 用fopen就行了, 读的时候用 "rb", 写的时候用"wb".  我最近做过, 发现不用QT 中的类就能简单的实现, 不用想的太复杂.....
------解决思路----------------------
用 QDataStream + QFile,具体真得看帮助哦。我也不好给你现成代码,时间有限
或直接用 C 库。
------解决思路----------------------
写文件:
============================


#include <QFile>
#include <QDataStream>
#include <QString>


// 建立文件
QFile file("file.dat");
file.open(QIODevice::WriteOnly);


// 序列化文件
QDataStream out(&file);



// 写入各类数据
out << QString("Hash data");   
out << (qint32) 42; 
out << (float) 41; 
out << (double) 40; 

...



file.close();





读文件:
============================

QFile file("file.dat");
file.open(QIODevice::ReadOnly);


// 序列化
QDataStream in(&file);    
QString str;
qint32 a;
float b;
double c;


in >> str >> a >> b >> c;           // str = "hash data", a = 42, b = 41, c = 40


...

f.close();


上述例子包含了浮点,字符串, 整型。楼主自己再尝试一下, 不难
  相关解决方案