gpt4 book ai didi

c - 从二进制文件中删除信息

转载 作者:行者123 更新时间:2023-11-30 17:59:59 24 4
gpt4 key购买 nike

您好,我的问题如下;

我有这个结构

struct item{
char id[5];
int ing[10];
float qtd[10];
};

我有一个包含信息的二进制文件,我想删除选定的ID,我尝试了这个

int remove(){   
FILE *origem;
FILE *copia;
char menu[10];
struct item aux;
origem=fopen("menu.bin","rb");
copia=fopen("temp.bin","wb");
if(origem==NULL || copia==NULL)
return;

do{

printf("name to delete");
scanf("%s",&menu);

if(stricmp(menu,aux.id)!=0)
fwrite(&aux,sizeof(aux),1,copia);

}while(fread(&aux,sizeof(aux),1,origem)==1);

fclose(origem);
fclose(copia);
remove("menu.bin");
rename("temp.bin","menu.bin");

}

你能帮我吗?我想复制除我选择的 ID 之外的内容。提前致谢。

最佳答案

printf/scanf 内容移到循环之外,使用 while(fread(...)) { ... } 代替do { ... } while(fread(...)) (检查 id 毫无意义,也许在从文件中读取某些内容之前就写入)。

关于c - 从二进制文件中删除信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com