程序运行一半为什么会突然退出,不执行输入语句
程序jie果如图:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h >
typedef struct User
{
char card_usernumber[30]; //用户名卡号
long int card_password; //用户密码
char card_username[30]; //用户名
float money; //账户余额
int status; //用户账号的状态,0为正常,-1为冻结状态
struct User *next;
}NEW;
FILE *fp;
void addUsers(NEW **head)
{
NEW *temp, *Users;
Users = NULL;
temp = NULL;
Users = (NEW *)malloc(sizeof(NEW));
if(Users == NULL)
{
printf("\t\t 新建用户失败!\n");
//exit(1);
}
printf("\t\t 银行卡号:");
scanf("%s",&Users->card_usernumber);
printf("\t\t 密码:");
scanf("%s",&Users->card_password);
printf("\t\t 用户名:");
scanf("%s",&Users->card_username);
printf("\t\t 卡内第一次充值金额为:");
scanf("%.2f",&Users->money);
Users->status = 0;
//头插法添加节点
if(*head != NULL)
{
temp = *head;
*head = Users;
Users->next = temp;
}
else
{
*head = Users;
Users->next = NULL;
}
fp = fopen("clients.txt","a");
fprintf(fp,"%s %ld %s %f %d\n",Users->card_usernumber,Users->card_password,Users->card_username,Users->money,Users->status); //\n为了文件存储更好看
fclose(fp);
puts("\t\t 开户成功!\n");
}
int main()
{
char ch;
int b; //用来判断分支
NEW *head;
/*欢迎界面进度条*/
int i = 0;
for(i = 0; i < 80; i++)
{
printf(">");
}
printf("\n\n");
printf("\t\t 欢迎使用中国银行\n");
printf("\n\n");
for(i=0;i<80;i++)
{
printf(">");
}
printf("\n");
printf("\n");
//printLink();
printf("\n\t\t 管理员操作请按 1,普通用户登录请按 其他键 继续:");
scanf("%d",&b);
getchar();
if(b == 1)
{
/*管理员操作界面*/
printf("\n\t\t 欢迎使用中国银行!\n");
printf("\n\t\t 管理员操作中,添加新卡请继续(y/n):");
ch = getchar();
printf("\n");
while(ch == 'Y' || ch == 'y')
{
addUsers(&head);
printf("\t\t 操作成功,添加新卡请继续(y/n):");
getchar();
scanf("%c",&ch);
}
}
return 0;
}