请大家进来看看!
我用这个运行时,输入了人员信息,可是当查找某年月前和后出生的人时出现了,某年月前的不可查,而后的却调出了所有人的信息!这是怎么回事,望高手不吝赐教!谢谢了
主要是这两个函数的问题,前者是查某年月前出生的 ,后者是查某年月后出生的!
void seek()
{
int k=0;
long int birthkey[8];
struct person one;
printf("\nenter birth:");
scanf("%ld",birthkey);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("\nfail!");
exit(1);
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s\n",one.name,one.id,one.sex,one.birth,one.prof,one.educat,one.salary,one.marriage);
if(birthkey<one.birth)
{
printf("\n\nfind,here is:");
printf("\n%-10s%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n",one.name,one.id,one.sex,one.birth,one.prof,one.educat,one.salary,one.marriage);
k=1;
}
}
if(!k)
printf("\n\nsorry,no such one!");
fclose(fp);
}
void shabi()
{
int k=0;
long int birthkey[8];
struct person one;
printf("\nenter birth:");
scanf("%ld",birthkey);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("\nfail!");
exit(1);
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s\n",one.name,one.id,one.sex,one.birth,one.prof,one.educat,one.salary,one.marriage);
if(birthkey>one.birth)
{
printf("\n\nfind,here is:");
printf("\n%-10s%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n",one.name,one.id,one.sex,one.birth,one.prof,one.educat,one.salary,one.marriage);
k=1;
}
}
if(!k)
printf("\n\nsorry,no such one!");
fclose(fp);
}