system("cls");
another = 'y';
while(another == 'y')
{
printf("\nEnter name of employee to delete ");
scanf("%s",empname);
ft = fopen("Temp.dat","wb");
rewind(fp);
while(fread(&e,recsize,1,fp) == 1)
{
if(strcmp(e.name,empname) != 0)
{
fwrite(&e,recsize,1,ft);
}
}
fclose(fp);
fclose(ft);
remove("EMP.DAT");
rename("Temp.dat","EMP.DAT");
fp = fopen("EMP.DAT", "rb+");
printf("Delete another record(y/n)");
another = getche();
}
这是一个代码中删除从二进制文件中使用员工姓名在c中的条目!但是当我想删除它的emp ID它不会删除条目,但删除文件的所有内容!错误删除二进制文件中的条目
case '4':
system("cls");
another = 'y';
while(another == 'y')
{
printf("\nEnter employee id to delete ");
scanf("%d",&empid);
ft = fopen("Temp.dat","wb");
rewind(fp);
while(fread(&e,recsize,1,fp) == 1)
{
if(e.userid!=empid)
{
fwrite(&e,recsize,1,ft);
}
}
fclose(fp);
fclose(ft);
remove("EMP.DAT");
rename("Temp.dat","EMP.DAT");
fp = fopen("EMP.DAT", "rb+");
printf("Delete another record(y/n)");
another = getche();
}
v可定义'e','empname'和'empid'的定义? – 2013-05-05 11:59:53
只是猜测:你的'case'4''接着是擦除命令,并且在case'4''的末尾忘记了'break'。 – 2013-05-05 12:05:16
@AdamLiss e是一个对象,empname是char和empid是int – 2013-05-05 12:06:41