Russian Qt Forum

Qt => Вопросы новичков => Тема начата: sunjob от Январь 29, 2022, 13:10



Название: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: sunjob от Январь 29, 2022, 13:10
добрый день
простой тест/отработка, не выдается "ошибка" при отсутствии файла
Код:
////////////////////////////////////////////////////////////////////////////////
#include <QApplication>
#include <QLabel>
#include <QObject>
#include <QtGui>
#include <QList>
#include <QLinkedList>
////////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
////////////////////////////////////////////////////////////////////////////////
{
QFile file("file.txt");

if(file.open(QIODevice::ReadOnly))
  {
  QTextStream stream(&file);
  QString str;

  while(!stream.atEnd())
    {
    str = stream.readLine();
    qDebug() << str;
    }

  if(stream.status() != QTextStream::Ok)
    {
    qDebug() << "Ошибка чтения файла";
    }

  //file.close();
  }
else
  {
  //###!!!
  // отсутствие файла не вываливается в ошибку!
  //###!!!
  qDebug() << "Ошибка открытия файла";
  }

file.close();
return 0;
}
////////////////////////////////////////////////////////////////////////////////


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: PimenS от Январь 29, 2022, 18:21
Версия Qt какая?


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: sunjob от Январь 29, 2022, 18:27
ключевая фраза
Код:
QApplication app(argc,argv);

теперь новая непонятка
Код:
return app.exec(); // не возвращается в консоль обратно
return 0         ; // возвращается


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: PimenS от Январь 29, 2022, 18:41
А при чем здесь QApplication app(argc,argv);?


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: tux от Январь 29, 2022, 19:07
Всё работает, как должно.


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: sunjob от Январь 29, 2022, 19:08
> А при чем здесь QApplication app(argc,argv);?
после добавления, сообщение об ошибке "проявилось" ;)

в начальном тексте "аппликейшн" не было

> Всё работает, как должно.
кто-бы сомневался :)

UPDATE - все заработало так как надо! что это было - ручной или мозговой глюк?! ... не понятно :о)
правда немного пересборал GST/QT4-пакеты, возможно это помогло :)

спасибо


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: kambala от Январь 29, 2022, 20:59
а зачем проверять через сообщение об ошибке, если можно просто запустить под отладчиком?

возможно, оператор << у qDebug() требует наличия QCoreApplication, поэтому ничего и не выводилось. qDebug("message") должно работать и без объекта приложения.


Название: Re: QFile.open() - не выдает ошибку, при отсутствии файла
Отправлено: sunjob от Январь 29, 2022, 21:49
требует наличия QCoreApplication
нет, не требует
Цитировать
все заработало так как надо!

всем спасибо