通过将结构信息从二进制文件读取到数组中,然后返回到文件C

Delete a record by reading structure information from a binary file into an array and back into the file C++

本文关键字:数组 返回 文件 然后 读取 结构 信息 二进制文件      更新时间:2023-10-16

好的,首先,是的,是的,这是家庭作业,但是我没有将该标签放在标签部分中所需的排名,所以我在这里让您知道。另外,我是C 的新手,所以请记住您的回答,我试图使我的大脑爆炸。

我创建了一个客户结构,该结构允许用户输入新的客户记录,更改现有客户记录,显示特定的客户记录,显示所有记录并删除特定的客户记录,并且一切都必须作为一个二进制文件。我遇到问题的一部分是删除特定的客户记录,我可能想出的最好的解决方案是写下所有记录,除了要删除的记录以外的记录,然后将数组重新编写为二进制文件文件。

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

如果你们可以告诉我我在做错了什么或向我展示一种更好的删除唱片的方法,我会非常非常感谢。请 - 尝试将其保留在假人级别的C 上(这就是我的感觉)。

现在您读取所有记录(最多150):Customer custRecords[150];,但仅保存一个deleteCustomer.write(reinterpret_cast<char *>(custRecords), sizeof(newCustomer));。查看调用, sizeof(newCustomer)的末尾 - 它只是一个记录,您应该将其乘以您在custRecords之前已阅读的记录数量。