У меня есть программа, которую я в основном украл с веб-сайта Qt, чтобы попытаться открыть файл. Программа отказывается открывать все, что я запутался относительно того, почему. Я искал много документации, но ничего не нашел, не могли бы вы объяснить, почему это не работает.
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QFile>
#include <QTextStream>
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent)
{
QFile file("C:/n.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&file);
QString f=in.readLine();
lab =new QLabel("error",this);
lab->setGeometry(100,100,100,100);
lab->setText(f);
}
Перед открытием файла вы всегда можете проверить наличие:
QFile file("myfile.txt");
if (!file.exists()) {
// react
}
Если файл существует, но не открывается, вы можете получить состояние ошибки и сообщение:
QString errMsg;
QFileDevice::FileError err = QFileDevice::NoError;
if (!file.open(QIODevice::ReadOnly)) {
errMsg = file.errorString();
err = file.error();
}
И всегда: если файл был открытым, то не забудьте закрыть его. В вашем примере вы не сделали:
file.close();
FileError QFile :: Ошибка () const
Возвращает состояние ошибки файла.
Состояние устройства ввода / вывода возвращает код ошибки. Например, если open () возвращает false или операция чтения / записи возвращает -1, эту функцию можно вызвать, чтобы выяснить причину сбоя операции.
Смотрите также unsetError ().
Разместите код ошибки. Разве это не должен быть файл QFile («C: \ n.txt»); не в окнах?