解析QTextStream

时间:2013-10-31 13:09:27

标签: c++ qt 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(),应用程序会在测试时崩溃。我究竟做错了什么?我需要 in 才能从多个方法访问。我必须在这里使用一个指针(?),因为中的会在以后被初始化(AFAIK,这是参考不可能的)

这可能是显而易见的,但我对c ++来说相当新...

谢谢!

1 个答案:

答案 0 :(得分:6)

我看到您使用&file初始化文本流。看起来file是一个局部变量,它在初始化函数完成时被销毁。 QTextStream期望传递的IO设备有效,直到流被销毁。所以你得到了段错误。您需要确保在使用文本流时不会销毁file