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

这是一个伪代码,我会让你计算出细节:

    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 回答
0
  • 将文件内容加载到内存中,
  • 删除那里的行,
  • 并将内容写回文件。

您可以通过在被删除的行之前不加载文件的一部分来稍微优化此过程(尽管您仍然需要扫描它以找到“目标”行),但您将无法做得比没有专门的数据结构。

如果这在性能方面真的很重要,请考虑使用数据库而不是普通文件。

于 2012-10-23T19:18:30.190 回答