一直在javase这边待着,不知道c语言去哪里问呀,感觉大家应该有一部分是从c语言走过来的把 希望帮帮忙呀void Selldelete()
{ struct ima i[1000];
struct ima temp;
int delID;
char choice;
int index=0;
int j=0;
FILE *fp;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&temp,sizeof(struct ima),1,fp);
while(!feof(fp))
{
i[index]=temp;
index++;
fread(&temp,sizeof(struct ima),1,fp);
}
fclose(fp);
printf("\n\t请输入要删除的物品的编号:");
scanf("%d",&delID);
fopen("f:\\ima.date","w");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
for( j=0;j<index;j++)
{
if(i[j].id!=delID)
{
fwrite(&i[j],sizeof(struct ima),1,fp);
}
}
fclose(fp);
printf("\t\t\t\t\t物品信息已清除!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Selldelete();
}
else
{
system("cls");
menu();
}
}我想实现删除功能,可惜不知道为什么 怎么都无法删除 求解答!
{ struct ima i[1000];
struct ima temp;
int delID;
char choice;
int index=0;
int j=0;
FILE *fp;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&temp,sizeof(struct ima),1,fp);
while(!feof(fp))
{
i[index]=temp;
index++;
fread(&temp,sizeof(struct ima),1,fp);
}
fclose(fp);
printf("\n\t请输入要删除的物品的编号:");
scanf("%d",&delID);
fopen("f:\\ima.date","w");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
for( j=0;j<index;j++)
{
if(i[j].id!=delID)
{
fwrite(&i[j],sizeof(struct ima),1,fp);
}
}
fclose(fp);
printf("\t\t\t\t\t物品信息已清除!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Selldelete();
}
else
{
system("cls");
menu();
}
}我想实现删除功能,可惜不知道为什么 怎么都无法删除 求解答!
int validateID(int id)
{
FILE *fp;
struct ima i;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&i,sizeof(struct ima),1,fp);
while(!feof(fp)) //输入输出函数,检查文件是否结束,如结束,则返回非零值,否则返回0
{
if(i.id==id)
{
fclose(fp);
return 1;
break;
}
fread(&i,sizeof(struct ima),1,fp);
}
fclose(fp);
return 0;
}
void Append()
{ struct ima i;
char choice;
FILE *fp;
fp=fopen("ima.date","ab");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
labID:
printf("\n\t请您输入要入库物品的信息...\n");
printf("\t\t\t\t 物品的编号:");
scanf("%d",&i.id);
if(validateID(i.id)==1)
{
printf("\t\t\t\t此编号已被使用,请您重新输入......");
goto labID;
}
printf("\t\t\t\t 物品的名称:");
scanf("%s",i.name);
printf("\t\t\t\t 物品的生产地:");
scanf("%s",i.produce);
printf("\t\t\t\t 物品的数量:");
scanf("%d",&i.number);
printf("\t\t\t\t 物品的单价:");
scanf("%f",&i.price);
fwrite(&i,sizeof(struct ima),1,fp);
fclose(fp);
printf("\t\t\t\t\t\t 物品信息已入库成功!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Append();
}
else
{
system("cls");
menu();
}
}
不记得fwrite怎么用了,这条时候fp指哪儿呢?文件尾?if(choice=='Y'||choice=='y')
{
Append();
}
这还递归?循环吧
{
Selldelete();
}
这还递归?循环吧
我不会结贴 刚才看到3楼的话之后 我去结贴了 然后你们就jb根据结贴说来说去?有意思么?
你们是小学生么?发java的东西 都jb懒的回答
发C语言竟jb BB没用的
你们是sb么 以后不来这里了 一群废物