0

私のタイトルから述べたように、テキストファイルから特定の行を削除するにはどうすればよいですか。私のプログラムには 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の内容を削除したいと思います。

4

2 に答える 2

0
  • ファイルの内容をメモリにロードし、
  • そこの行を削除し、
  • コンテンツをファイルに書き戻します。

削除される行の前にファイルの一部をロードしないことで、このプロセスをいくらか最適化できます (ただし、「ターゲット」行を見つけるためにスキャンする必要があります)。特殊なデータ構造がないこと。

これがパフォーマンスの観点から非常に重要である場合は、プレーン ファイルの代わりにデータベースを使用することを検討してください。

于 2012-10-23T19:18:30.190 に答える
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()ループで使用して、ファイルから行を読み取ります。

于 2012-10-23T19:16:46.703 に答える