如何在Qt中保存QTextStream?

时间:2017-04-19 11:00:47

标签: c++ qt

我必须逐行读取Qt中的文本文件。

所以我创建了一个函数来读取文件的第一行X行。但是当下次调用该函数时我希望读数从第X + 1行开始。我知道我可以通过跳过第一个X行来做到这一点。

但是我试图保存QTextStream对象,它给出了错误:

扩展宏Q_DISABLE_COPY

如果我将指针保存到QTextStream对象,那么我的应用程序会挂起。这是否意味着跳过第一个X行是唯一的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用pos()然后seek(position)保存信息流的当前位置,以便从之前达到的点恢复。

我怀疑每次读取时都会在堆栈上创建QTextStream,这就是为什么如果你在下次崩溃时尝试使用它的指针,因为它是一个指向不再有效的悬空指针宾语。

所以你要么需要使文本流持久化,要么实现它是一个成员变量,要么在堆上用new分配它,它将使用指针,或者只是创建一个新的文本流并寻求到以前的位置。