Файл не получает и не сохраняет данные. Qt С++

Пишу программу на Qt C++ с функциями регистрации и авторизации, с шифрованием пароля. Но все это без использования баз данных, такая задача. Проблема в том, что когда программа получает пароль, логин и должна записать их в текстовый файл, сам файл остается пустым. Есть код функции:

void secondWindow::on_pushButtonRegistration_clicked()
{
    QString login = ui->lineeditLogin->text();
    QString pass = ui->lindeeditPass->text();
    if (login.isEmpty() || pass.isEmpty()) {
        QMessageBox::warning(this, "Warning", "Login and password cannot be empty.");
        return;
    }
    QByteArray hashedPassword = QCryptographicHash::hash(pass.toUtf8(), 
    QCryptographicHash::Sha256);

    QFile file("users.txt");
    if (file.open(QIODevice::Append | QIODevice::Text)) {
        QTextStream out(&file);
        out << login << " " << hashedPassword.toHex() << "\n";
        file.close();
        QMessageBox::information(this, "Success", "User registered successfully.");
        close();
    } else {
        QMessageBox::critical(this, "Error", "Could not open file for writing.");
}

Я задал вопрос в чате GPT и Bing по этому вопросу, они предложили проверить, есть ли в проекте сам текстовый файл - в нем все правильно, предложили проверить, как программа реагирует на каждом этапе выполнения этой функции - все было правильно, но файл сам остается пустым. Я не понимаю, в чем проблема.


Ответы (1 шт):

Автор решения: Aget1v

Почитай доку про QSettings https://doc.qt.io/qt-6/qsettings.html
позволяет сохранять данные по ключ-значению в системе, думаю как раз твой случай

Как пример:

QCoreApplication::setApplicationName("name"); //название проги
QCoreApplication::setOrganizationDomain("Organization"); //название организации 

QSettings users (QCoreApplication::organizationDomain(),QCoreApplication::applicationName(),&a);

   users.setValue(key, value); //сетим ключ логин - пароль

if(users.contains(key))
{
   users.value(key); // получаем пароль по ключу
}
→ Ссылка