scanf代码运行到这一步为啥报错?
完整代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
struct book
{
char* name;
char* id;
int kc;
int state;
};
struct dconsumer
{
char* name;
int id;
int xh;
};
void welcome1()
{
printf("************欢迎进入图书管理系统*************\n");
printf("[1]管理员界面\n");
printf("[2]普通用户界面\n");
printf("[3]注册信息\n");
printf("[4]退出\n");
printf("**********************************************\n");
}
void welcome2()
{
printf("[1]查看已有图书\n");
printf("[2]录入新书\n");
printf("[3]修改已有信息\n");
printf("[4]注销现有图书\n");
printf("[5]催还图书\n");
printf("[6]退出\n");
}
void welcome3()
{
printf("[1]搜索书籍\n");
printf("[2]借阅图书\n");
printf("[3]归还图书\n");
printf("[4]续借图书\n");
}
void welcome4()
{
while (2)
{
printf("请输入用户名,学号,联系方式%d,%d,%d\n");
}
}
int main()
{
struct book book[100];
int num;
int xz;
do
{
welcome1();
printf("请输入登录方式的序号,选择登录\n");
scanf("%d", &xz);
if (xz == 1)
{
printf("欢迎进入管理员界面\n");
printf("请输入序号选择功能:\n");
welcome2();
int m = 0;
scanf("%d,&m");
if (m == 1)
{
printf("1.查看书籍种类\n");
printf("2.查看书籍库存\n");
printf("3.查看书籍状态\n");
printf("4.返回上一页\n");
}
else if (m == 2)
{
while (1)
{
printf("请输入图书编号,名称,库存%d,%d,%d:\n");
scanf("%d,%d,%d", &book[num].id, &book[num].name, book[num].kc);
printf("请选择是否继续录入y/n \n");
char yn;
scanf(" %c", &yn);
num++;
if (yn == 'y')
{
continue;
}
else
{
break;
}
}
if (m == 3)
{
printf("请输入修改的图书编号,名称,库存%d,%d,%d:\n");
scanf("%d,%d,%d", &book[num].id, &book[num].name, book[num].kc);
printf("请选择是否继续修改y/n \n");
char yn;
scanf(" %c", &yn);
num++;
if (yn == 'y')
{
continue;
}
else
{
break;
}
}
if (m == 4)
{
printf("请输入注销的图书编号,名称,数量\n");
}
}
while (true);
continue;
}
else if (xz == 2)
{
printf("欢迎进入普通用户界面\n");
welcome3();
}
else if (xz == 3)
{
printf("注册用户信息");
welcome4();
}
else
{
break;
}
} while (xz >= 4);
return 0;
}
是 scanf("%d", &m); 你写错了