这段可以用其他算法吗

if (fp == NULL)
{
printf("文件打开失败!\n");
exit(1);//1表示在有错的方式退出程序
}

while ((flag == 'y' || flag == 'Y'))
{
system("cls");
Menu1();

printf("请输入图书id:");
scanf("%s", stu.id);

printf("请输入书名:");
scanf("%s", stu.name);

printf("请输入书籍作者:");
scanf("%s", &stu.author);

printf("请输入出版社:");
scanf("%s", &stu.publish);

printf("请输入价格:");
scanf("%lf", &stu.price);


fwrite(&stu, LEN, 1, fp);
fflush(stdin);

printf("继续输入吗?继续请输入Y或y:");
getchar();
scanf("%c", &flag);

}

fclose(fp);//关闭文件
return;