0

我的问题很简单,但我无法解决这个问题......

在我的标题中:

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!");
}

虽然初始化工作正常,但如果inatEnd() ,应用程序会在测试中崩溃。我究竟做错了什么?我需要通过多种方法访问。我必须在这里使用指针(?),因为稍后会初始化(AFAIK 无法使用引用)

这可能很明显,但我对 C++ 还很陌生......

谢谢!

4

1 回答 1

6

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

于 2013-10-31T13:20:51.637 回答