文件输入-未读取文件 我对C++和QT非常陌生。基本上,我只是做了java的东西,但是我们被C++所取代,我们必须设计一个ZORK游戏UI。我计划创建房间对象的方法是使用roomnum.long、.short和.name来构建房间,分别表示long desc、short desc和name

文件输入-未读取文件 我对C++和QT非常陌生。基本上,我只是做了java的东西,但是我们被C++所取代,我们必须设计一个ZORK游戏UI。我计划创建房间对象的方法是使用roomnum.long、.short和.name来构建房间,分别表示long desc、short desc和name,c++,file,qt,input,C++,File,Qt,Input,对于第一个房间,我只是暂时直接加载文件,直到我正确地进入对象等。但是,我似乎无法将文件写入文本标签。返回的“重新启动游戏等”不会写入按键,但不会写入文件内容。文件室文件夹与源文件(本例中为islandmain.cpp)位于同一文件夹中 有什么想法吗 void TheIslandMain::on_startButton_clicked() { ui->roomDesc->setText(readFirstRoom("/Rooms/room1.long")); ui-&g

对于第一个房间,我只是暂时直接加载文件,直到我正确地进入对象等。但是,我似乎无法将文件写入文本标签。返回的“重新启动游戏等”不会写入按键,但不会写入文件内容。文件室文件夹与源文件(本例中为islandmain.cpp)位于同一文件夹中

有什么想法吗

void TheIslandMain::on_startButton_clicked()
{
    ui->roomDesc->setText(readFirstRoom("/Rooms/room1.long"));
    ui->roomDesc->setWordWrap(true);
}

QString TheIslandMain::readFirstRoom(QString filename)
{
    QFile mFile(filename);

    if (!mFile.open(QFile::ReadOnly | QFile::Text))
    {
        qDebug() << "Could not open file for reading Line 31";
        return "Could not load file. Please restart game.";
    }

    QTextStream in(&mFile);
    QString fileInput = in.readAll();

    qDebug() << fileInput;

    mFile.close();

    return fileInput;
}
void TheIslandMain::启动按钮时单击()
{
ui->roomDesc->setText(readFirstRoom(“/Rooms/room1.long”);
ui->roomDesc->setWordWrap(真);
}
QString TheIslandMain::readFirstRoom(QString文件名)
{
QFile-mFile(文件名);
如果(!mFile.open(QFile::ReadOnly | QFile::Text))
{

qDebug()使用
boolqfile::exists(const QString&path)
检查文件是否存在,以及它是否只是函数中的文件名或整个路径(需要路径)


soo long zai

/Rooms/room1.long
指向根目录中的文件,然后指向Rooms,然后指向room1.long,与文件一样长。如果
Rooms
是目录,则它需要与应用程序本身相对,因此如果
Rooms
与应用程序位于同一目录中,那么如果它位于更高级别,则只需
Rooms/room1.long
。/Rooms/room1.long
参考资料/Rooms/room1.long

记住以“/”开头的路径是绝对路径。这有助于说明文件不存在,但我知道它确实存在,它必须是路径程序。正确的查找方法是什么。文件结构是maindir,其中包含.cpp和.h文件s maindir/Rooms,当前仅包含room1.long、room1.short、room1.nametry…
QString QDir::currentPath()[static]
,看看它是否是你的应用程序文件夹,而不仅仅是将你的
文件名添加到其中,它应该会起作用。我对此有点不清楚。我从Java得到的印象是,当我使用类提取文件时,根目录是类文件中唯一的目录。因此,如果我有dir/whater.class,我调用file.file,它就会需要在dir/file.file中。如果它在另一个dir中,比如dir/foo/file.file,我只需要在whatever.class中使用foo/file.file?啊哈!QT正在使用构建路径!干杯!它实际上正在进入sep dir(岛构建),所以../Island/Rooms/room1.long完成了这项工作。