c++ - 将QFile储存在QHash中
阿神
阿神 2017-04-17 11:41:14
0
1
225

我想将数据随机输出到多个文件中,所以将QFile *储存在Qhash中,但是貌似运行存在问题,请大家帮忙指点一下。
下面是的一个测试程序。

#include <QHash>
#include <QString>
#include <QFile>
#include <QTextStream>
#include <QFile>
#include <QDebug>

int main(int argc, char *argv[])
{
QHash <qint32,QFile *> fileHandHash;
for(qint32 i=0; i<1000; i++){
qint32 id = i % 10;
qDebug() << i << "\t" << id;

if( ! fileHandHash.contains(id) ){
QString filename = id + ".out.txt";
QFile MYFILE(filename);
MYFILE.open(QIODevice::WriteOnly);
fileHandHash.insert(id,&MYFILE);
}

QTextStream OUT(fileHandHash[id]);
OUT << i << "\n";
}
return 1;
}

运行的时候出现下面的错误:

QObject::connect: No such signal QObject::aboutToClose() in ....\include\QtCore\5.3.2\QtCore/private/../../../../../src/corelib/io/qtextstream_p.h:75

谢谢大家!

阿神
阿神

闭关修行中......

全部回复(1)
伊谢尔伦
if( ! fileHandHash.contains(id) ){
QString filename = id + ".out.txt";
QFile MYFILE(filename);
MYFILE.open(QIODevice::WriteOnly);
fileHandHash.insert(id,&MYFILE);
}

这一段里面MYFILE在大括号后就被回收了。你试试改成指针,然后用

QFile *MYFILE =  new QFile(filename);

最后再一起Delete

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!