0

簡単なプログラムを書いています。プログラムには、次の変数で設定された 2 つの QStrings があります: ファイルのパスと名前。後で最初の 2 つの QString の追加の結果を一緒に入れるために使用する 3 番目の QString があります。 QStrings を取得し、appendAll QString に入れ、appendAll QString を QFile 変数コンストラクターに送信します。これを行うと、「ファイルの作成に失敗しました」と出力されます。これは私が使用したコードです。

#include <QString>
#include <QTextStream>
#include <QFile>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    QTextStream output(stdout);

    QString location = "/home/mahmoud/Destkop";
    QString name = "mahmoud.txt";
    QString appendAll;

    if( !location.endsWith("/") )
    {
        location.append("/");
    }

    appendAll = location.append(name);

    output << appendAll << endl;

    QFile myFile(appendAll);

    if(myFile.open(QIODevice::WriteOnly | QIODevice::Text ))
    {
        output << "File Has Been Created" << endl;
    }
    else
    {
        output << "Failed to Create File" << endl;
    }

    QTextStream writeToFile(&myFile);

    writeToFile << "Hello World" << endl;

    myFile.close();

    return a.exec();
}

しかし、同じプログラムのQFile変数コンストラクターに文字列を直接入力すると、「ファイルが作成されました」と表示され、デスクトップに表示されます。以下のコードは正常に機能します。

QFile myFile("/home/mahmoud/Desktop/mahmoud.txt");

if(myFile.open(QIODevice::WriteOnly | QIODevice::Text ))
{
    output << "File Has Been Created" << endl;
}
else
{
    output << "Failed to Create File" << endl;
}

QStrings を既に持っていて、それらを追加して QFile 変数コンストラクターに送信できるようにしたいのですが、問題を解決する方法について何か提案はありますか? ありがとうございました

4

2 に答える 2