Разбор QTextStream

Моя проблема достаточно проста, но я не могу это исправить …

В моем заголовке:

QTextStream *in = NULL;

в одном методе QTextStream инициализируется:

in = new QTextStream(&file);

тогда я пытаюсь разобрать его другим способом:

QString next;

if(in != NULL){
while(!in->atEnd()){
next = in->readLine();
}
}
else{
QMessageBox::critical(this, "Error", "No file to test!");
}

Хотя инициализация работает нормально, приложение вылетает при тестировании, если в является atEnd (). Что я делаю неправильно? я нуждаюсь в быть доступным из нескольких методов. Я должен использовать указатель здесь (?), Потому что в инициализируется позже (AFAIK, что невозможно со ссылками)

Это может быть очевидно, но я довольно плохо знаком с c ++ …

Спасибо!

0

Решение

Я вижу, что вы инициализируете поток текста с &file, Это выглядит как file является локальной переменной и уничтожается при завершении функции инициализации. QTextStream ожидает, что переданное устройство ввода-вывода будет действительным, пока поток не будет уничтожен. Таким образом, вы получите Segfault. Вы должны убедиться, что file не уничтожается при использовании текстового потока.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]