текстовые файлы — C ++ Как удалить указанную строку из текстового файла?

Как указано в моем заголовке, как я могу удалить указанную строку из текстового файла.
В моей программе есть HR-пользователь, который может редактировать / удалять информацию о пользователях.
Я могу записать в файл, но удалить из определенной строки, я не знаю.
Надеюсь, кто-нибудь может дать мне пример того, как это сделать, спасибо!

Пример моего текстового файла

user;pass;1234;John;1111
user1;pass1;2345;May;2222
user2;pass2;3456;Mary;3333
user3;pass3;4567;Andy;4444
hr;hr;5678;Jonathan;5555
admin;admin;6789;Aili;6666
user10;pass10;7890;eggy;9999

и поэтому я хочу удалить содержимое user3, которое находится в строке 4 моего текстового файла, когда пользователь вводит имя пользователя, которое является user3.

0

Решение

Вот псевдокод, я позволю вам проработать детали:

    1. read the entire file into a vector
2. delete that file
3. create and write back the data to the file skipping the line that isn't required.

использование std::getline() в цикле, чтобы прочитать строку из файла.

0

Другие решения

  • Загрузите содержимое файла в память,
  • удалите строку там,
  • и запишите содержимое обратно в файл.

Вы могли бы несколько оптимизировать этот процесс, не загружая часть файла до удаления строки (хотя вам все равно нужно будет отсканировать ее, чтобы найти «целевую» строку), но вы не сможете сделать это намного лучше, чем это без специализированной структуры данных.

Если это действительно важно с точки зрения производительности, рассмотрите возможность использования базы данных вместо простого файла.

0

По вопросам рекламы [email protected]