Удалить строку из файла в qt?

0

Как удалить две последовательные строки с помощью итератора?

Я пытаюсь создать форму для сохранения пользователя и пароля с помощью QT3.3. Но я также хочу изменить и удалить имя пользователя и пароль. Я могу удалить имя пользователя, но я не могу удалить следующую следующую строку. Код, который я использовал, это:

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

Может ли кто-нибудь предложить какой-либо способ?

  • 3
    Текущий Qt - Qt5.4; Вы не должны использовать древний Qt3.3 в 2015 году. И вам лучше прочитать все файлы в памяти, а затем написать новый .... Или рассмотрите Sqlite или gdbm
  • 0
    Моя работа основана на RHEL 4, и ОС имеет вместе с ним qt 3.3, так что только я его использовал.
Показать ещё 2 комментария
Теги:
qt
qt3

1 ответ

2

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

Кроме того, обязательно: есть ли причина, по которой вы используете Qt 3.3? Это древнее.

  • 0
    я пытался это, но это дает ошибку сегментации при выполнении
  • 0
    Моя работа основана на RHEL 4, и ОС имеет вместе с ним qt 3.3, так что только я его использовал.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню