C++ 是否从qt中的文件中删除一行?

C++ 是否从qt中的文件中删除一行?,c++,linux,qt,qt3,C++,Linux,Qt,Qt3,如何使用迭代器删除两个连续的行 我正在尝试使用QT3.3创建一个表单来保存用户和密码。 但我也想修改和删除用户名和密码。我可以删除用户名,但无法删除下一行。我一直使用的代码是: QStringList::Iterator it; it = qFind(lines.begin(), lines.end(), str); if(it != lines.end()) { lines.erase(it); } 有人能提出任何建议吗?QStringList::erase返回一个迭代器,该迭代器引用

如何使用迭代器删除两个连续的行

我正在尝试使用QT3.3创建一个表单来保存用户和密码。 但我也想修改和删除用户名和密码。我可以删除用户名,但无法删除下一行。我一直使用的代码是:

QStringList::Iterator it;
it = qFind(lines.begin(), lines.end(), str);
if(it != lines.end())
{
 lines.erase(it);
}  

有人能提出任何建议吗?

QStringList::erase
返回一个迭代器,该迭代器引用刚才删除的元素后面的元素,因此:

it = lines.erase(it);

// it now references the line after the erased one, so go again to delete that:
if(it != lines.end()) {
  lines.erase(it);
}

另外,必须:使用Qt3.3有什么原因吗?现在已经很古老了。

当前Qt为Qt5.4;您不应该在2015年使用古老的Qt3.3。你最好先读取内存中的所有文件,然后再写一个新的。。。。或者考虑一下,或者我的工作是基于RHEL 4,操作系统还有QT 3.3,所以只有我一直使用它。抱歉,你总是可以从它的源代码编译QT5.4并安装它。顺便说一句,我不确定在2015年(十年后)以RHEL4(2005年出版)为基础的工作是否明智@user3639779如果你使用RHEL4和Qt3.3,你会在StackOverflow上发帖,而不是拨打本地BBS并在那里发帖,这似乎很奇怪。我一直在尝试这个方法,但它在执行时会出现分段错误。我的工作基于RHEL 4,操作系统也有qt 3.3,所以只有我在使用它。@user3639779:based目前关于十年前发布的东西的工作很可能是一个巨大的错误。你在哪个行业工作?但是在嵌入式系统上工作并不能证明使用古老的软件来利用你的开发是合理的。我有一个隐秘的怀疑,即segfault会在程序的后期发生。gdb怎么说?如果它真的在那里崩溃,那么在这之前,
QStringList
对象就已经被粉碎了,但是我很难想象它会以什么方式被粉碎,能够“存活”一次
擦除,而不是两次。