通过将结构信息从二进制文件读入数组并返回到文件C ++中来删除记录

时间:2014-03-06 01:39:24

标签: c++ arrays file binary record

好的,首先,是的,这是家庭作业,但我没有将标签放在标签部分所需的排名,所以我在这里告诉你。另外,我对C ++还是比较陌生的,所以请记住你的回答,我试图阻止我的大脑爆炸。

我创建了一个Customer结构,允许用户输入新的客户记录,更改现有客户记录,显示特定客户记录,显示所有记录以及删除特定客户记录,所有内容都必须以二进制文件。我遇到问题的部分是删除特定的客户记录,我能想到的最好的解决方案是将除了要删除的记录写入数组之外的所有记录,然后将数据重新写回二进制文件文件。

嗯,这就是我试图做的,它会编译,但是当我去运行程序时,它会在删除客户记录的部分冻结。我的代码是疯狂的(1114行),所以我只是发布我遇到问题的部分。

如果你们可以告诉我我做错了什么或给我一个更好的删除记录的方法,我会非常非常感激。请-try-将它保存在C ++ for dummies级别(这就是我的意思)。

1 个答案:

答案 0 :(得分:0)

现在您已阅读所有记录(最多150个):Customer custRecords[150];但只保存一个deleteCustomer.write(reinterpret_cast<char *>(custRecords), sizeof(newCustomer));。查看通话结束, sizeof(newCustomer) - 它只是一条记录,您应该将它与您之前读入custRecords的记录数相乘。