可以看看这个哪里出问题了吗😭

void Input()
{
struct info a, b;//a是输入
FILE* fp;
system("cls");
printf(" 欢迎来到登录界面!\n");
fp = fopen("info.txt", "r");
fread(&b, sizeof(struct info), 1, fp);
printf(" 请输入账号:");
scanf("%s", &a.username);

while (1)
{
    if (strcmp(a.username, b.username) == 0)
    {
        break;
    }
    
    else
    {
        if (!feof(fp))

        {
            fread(&b, sizeof(struct info), 1, fp);
        }

        else
        {
            int v;
            printf("                                        此用户名不存在,请重新输入\n");
            Sleep(500);
            fclose(fp);
            printf("                                        是否进入注册界面\n");
            printf("                                        1.是\n");
            printf("                                        2.否");
            scanf("%d", &v);
            if (v == 1)
            {
                zhuce();
            }
            else if (v == 2)
            {
                Input();
            }    
        }
    }
}
printf("                                        请输入密码:");
scanf("%s", &a.mi);
do{
    int c;
    if (strcmp(a.mi, b.mi) == 0)
    {
        fclose(fp);
        printf("                                        登录成功,欢迎使用!");
        c = -1;
        break;
    }
    else
    {
        printf("                                        密码不正确!请重新输入密码:");
        scanf("%s", &a.mi);
    }
}while (1);

}