供参考:
void search_bykind(Equ stu[])
{
int i,m=0;
char search[20],ch[2]="y";
FILE *fp;
//system("cls");
if((fp=fopen("data.txt","r"))==NULL){
printf("can not open file!\n");
return;
}
while(1){
if(fread(&stu[m],LEN,1,fp)!=1) break;
m++;
}
fclose(fp);
while(ch[0] == 'Y' || ch[0] == 'y'){
system("cls");
printf("\n请输入要查找的设备(编号 种类 名称 价格 购买日期 所属实验室【任选一项】):");
scanf("%s",search);
for(i=0;i<m;i++){
if(strcmp(stu[i].num, search)==0 || strcmp(stu[i].kind, search)==0 ||
strcmp(stu[i].name,search)==0 || strcmp(stu[i].price,search)==0 ||
strcmp(stu[i].buy_time,search)==0||strcmp(stu[i].lab,search)==0 )
break;
}
if(i==m) printf("无想要查询的记录!\n");
else{
printf("\n设备编号 设备种类 设备名称 价格 购买日期 所属实验室\n");
printf("%s %s %s %s %s %s\n",stu[i].num,stu[i].kind,stu[i].name,
stu[i].price,stu[i].buy_time,stu[i].lab);
}
printf("继续查找下一个(y/n):");
getchar();
scanf("%s",ch);
}
}
大概是你i定义的的int,输入的时候应该为%d
for循环的条件是j<n,而n=0;所以for循环一次也不会执行,直接跳过for循环了。 应该是n的值弄错了。