关于#c语言#的问题:用这个代码查文件里图书的信息,一直显示没有找到该图书信息

FILE *fp;
int i,k;
BOOK b[SIZE];
char s2[20];
fp=fopen("book.txt","r");
rewind(fp);
if(fp==NULL)
{
    printf("文件打开错误!\n");
    exit(0);
}
printf("请输入要查询的书名:");
scanf("%s",s2);
fread(b,sizeof(struct BOOK),SIZE,fp);
for(i=0;i<SIZE;i++)
{    
    
    if(strcmp(s2,b[i].name)==0)
    {
    
        printf("IBSN                      书名                    定价\n");
        printf("%s%s%f",b[i].number,b[i].name,b[i].price); 
        printf("\n\n继续查询吗?【按1继续/按其他键回主菜单】");
        scanf("%d", &k);
        if (k == 1)
            search();
        else 
            menu();
        break;
  }
    else    
        printf("没有该图书信息\n继续查询吗?【按1继续/按其他键回主菜单】");
        scanf("%d", &k);
        if (k == 1)
            search();
        else
            menu(); 
    fclose(fp);     

用这个代码查文件里图书的信息,一直显示没有找到该图书信息,不知道是什么原因

修改如下,供参考:

void search(void)
{
   FILE *fp;
   int i,k;
   BOOK b[SIZE];
   char s2[20];
   fp=fopen("book.txt","r");
   //rewind(fp);
   if(fp==NULL)
   {
       printf("文件打开错误!\n");
       exit(0);
   }
   fread(b,sizeof(struct BOOK),SIZE,fp);
   fclose(fp);
   printf("请输入要查询的书名:");
   scanf("%s",s2);
   for(i=0;i<SIZE;i++)
   {
       if(strcmp(s2,b[i].name)==0)
       {
           printf("IBSN                      书名                    定价\n");
           printf("%s%s%f",b[i].number,b[i].name,b[i].price);
           //printf("\n\n继续查询吗?【按1继续/按其他键回主菜单】");
           //scanf("%d", &k);
           //if (k == 1)
           //   search();
           //else
           //   menu();
           break;
       }
   }
   if(i>=SIZE)  printf("没有该图书信息\n");
   printf("继续查询吗?【按1继续/按其他键回主菜单】");
   scanf("%d", &k);
   if (k == 1)
           search();
   else
           menu();
}

我就问一下,这种字节搜索,不考虑编码吗?