【发布时间】:2021-02-02 14:20:25
【问题描述】:
我有这样一群人:
struct patient{
char name[100];
char address[100];
int age;
}
struct patient p1;
int f;
f = open("patients.dat",O_RDWR,S_IRUSR|S_IWUSR);
我使用 f = open... 和 write(f,&p1,sizeof(struct patient))
编写了一个二进制文件现在有一项任务,我必须从二进制文件中删除某些人(例如我输入的那些人)在要删除的文件中。
有什么办法可以从文件中删除,我不知道,比如将 p1 的名称、地址和年龄更改为 '\0',但它不起作用,它仍然显示“幽灵”的东西.
【问题讨论】:
-
您不能从文件中删除数据,除非它位于文件末尾。人们通常做的是用编辑过的数据编写一个新文件。