关于在C ++中删除/更新txt文件中的记录

时间:2013-05-11 11:53:36

标签: c++

我正在编写一个c ++程序来添加,查看,修改和删除“.txt”文件中的记录。

例如,“trains.txt”文件包含字段: - 身份证火车 - 座位数量 - 简短的介绍 例如:(train01,90,非常好的火车) 并且所有操作必须使用struct或class直接在文件中完成。 有人能帮我吗 ? :)

2 个答案:

答案 0 :(得分:1)

首先将所有记录读入内存。编辑内存上的值。然后截断旧文件并根据您的内存记录生成一个新文件。插入/删除文本没有神奇的方法。

考虑使用这样的东西:

struct Train
{
    string id;
    int seats;
    string description;
}

vector<Train> trains;

// read all lines to trains
trains[2].seats = 80;
// write trains to a file

答案 1 :(得分:1)

如果你绝对需要实施自己的“数据库”......
您可以通过为每个字段使用固定长度来避免重写整个文件,并在必要时添加空格。即使删除了某些记录,也只能从已删除记录的位置重写文件,保持头部完好无损。或者甚至将它们标记为已删除并稍后一起删除。