从文本文件中读取,然后在QT中写入相同的文件(高分特征)

时间:2015-12-14 00:00:06

标签: c++ qt

我正在尝试在我正在制作的简单QT 5.5游戏中实现高分功能。我可以用当前的高分读取它,但如果玩家的得分比目前的高分好,我希望将新名称和高分写入同一个文件。目前,我收到错误消息QIODevice :: write(QFile,":\ images \ scores.txt"):设备未打开。我的scores.txt文件包含在我的.qrc。

这是我的代码:

QFile myFile (":/images/scores.txt");
myFile.open(QIODevice::ReadOnly);
QTextStream in(&myFile);

QString qName = in.readLine();
QString qScore = in.readLine();
myFile.close();

bool ok;
if(qScore.toInt() < myScore)
{
    QInputDialog* inputDialog = new QInputDialog();
    inputDialog->setOptions(QInputDialog::NoButtons);
    qName =  inputDialog->getText(NULL ,"High Score!",
                                         "Enter Name:", QLineEdit::Normal,
                                         "Grandma", &ok);
    if (ok && !qName.isEmpty())
    {
        qDebug() << "Good Job!";
    }

    qScore = QString::number(myScore);
    string nameS, scoreS;
    nameS = qName.toStdString();
    scoreS = qScore.toStdString();
    myFile.open(QIODevice::WriteOnly);
    QTextStream out (&myFile);
    out << nameS.c_str() << endl << scoreS.c_str();
    myFile.flush();
    myFile.close();

}

1 个答案:

答案 0 :(得分:1)

如上所述,您无法写入~/.nixpkgs/config.nix资源文件。您可以写入磁盘上的任意文件,但这会引发存储位置的问题。处理此问题的一种方法是使用tf.train.shuffle_batch

它非常易于使用:tf.train.start_queue_runners()

来自文档:

  

QSettings类提供持久性   与平台无关的应用程序设置。

用户通常   期待应用程序记住它的设置(窗口大小和   职位,选项等)跨会议。这些信息经常出现   存储在Windows上的系统注册表和属性列表文件中   在OS X和iOS上。在Unix系统上,在没有标准的情况下,很多   应用程序(包括KDE应用程序)使用INI文本文件。

     

QSettings是一个抽象   这些技术使您能够保存和恢复应用程序   以便携方式设置。它还支持自定义存储格式。