C ++如何从文本文件中删除特定行?

时间:2012-10-23 19:13:56

标签: c++ text-files filestream

如我的标题所述,我如何从文本文件中删除指定行。 我的程序有一个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)时,我想删除text3文件第4行的user3内容。

2 个答案:

答案 0 :(得分: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()从文件中读取一行。

答案 1 :(得分:0)

  • 将文件内容加载到内存中,
  • 删除那里的行,
  • 并将内容写回文件。

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

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