Russian Qt Forum
Ноябрь 22, 2024, 22:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFile.open() - не выдает ошибку, при отсутствии файла  (Прочитано 2324 раз)
sunjob
Новичок

Offline Offline

Сообщений: 29


Просмотр профиля
« : Январь 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;
}
////////////////////////////////////////////////////////////////////////////////
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #1 : Январь 29, 2022, 18:21 »

Версия Qt какая?
Записан
sunjob
Новичок

Offline Offline

Сообщений: 29


Просмотр профиля
« Ответ #2 : Январь 29, 2022, 18:27 »

ключевая фраза
Код:
QApplication app(argc,argv);

теперь новая непонятка
Код:
return app.exec(); // не возвращается в консоль обратно
return 0         ; // возвращается
« Последнее редактирование: Январь 29, 2022, 18:39 от sunjob » Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #3 : Январь 29, 2022, 18:41 »

А при чем здесь QApplication app(argc,argv);?
Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #4 : Январь 29, 2022, 19:07 »

Всё работает, как должно.
Записан

sunjob
Новичок

Offline Offline

Сообщений: 29


Просмотр профиля
« Ответ #5 : Январь 29, 2022, 19:08 »

> А при чем здесь QApplication app(argc,argv);?
после добавления, сообщение об ошибке "проявилось" Подмигивающий

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

> Всё работает, как должно.
кто-бы сомневался Улыбающийся

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

спасибо
« Последнее редактирование: Январь 31, 2022, 18:46 от sunjob » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Январь 29, 2022, 20:59 »

а зачем проверять через сообщение об ошибке, если можно просто запустить под отладчиком?

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sunjob
Новичок

Offline Offline

Сообщений: 29


Просмотр профиля
« Ответ #7 : Январь 29, 2022, 21:49 »

требует наличия QCoreApplication
нет, не требует
Цитировать
все заработало так как надо!

всем спасибо
« Последнее редактирование: Февраль 09, 2022, 18:10 от sunjob » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 23.