C语言登录系统退格键的使用
在用c语言编写登录系统时,怎么实现如果输入用户名和密码时发现输入错误后,能使用退格键删除的功能。拜托大家帮忙看看。谢谢!
//这是和登陆部分有关的代码,麻烦大家看看吧!
void login() /*登录*/
{
void menu();
system("cls");
if(flag)
{
printf(" 已经登录!\n");
printf("Press any key to continue…\n");
getchar();
getchar();
system("cls");
menu();
}
int load();
int n,i,m,w;
FILE *fp;
if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/
n=load(); /*打开文件*/
else
n=0;
struct student s;
char password[20];
int d,q;
printf("\n\t请选择登录身份:1.管理员 2.用户 [ ]\b\b");
scanf("%d",&d);
if(d==1)
{
printf("\n\t\t\t请输入密码:");
getchar();
int j=0;
while(1)
{
password[j]=getch();
if(password[j]=='\r')
break;
printf("*");
j++;
}
password[j]='\0';
if(!strcmp(password,"930322")) /*判断密码是否正确*/
{
flag=1;
printf("\n\t登录成功!\n");
printf("\tPress [ Enter ] key to continue…");
getchar();
system("cls");
menu();
}
if(!flag)
{
printf("\t\n密码错误!\n");
printf("What do you want to do next? 1.继续登录 2.返回菜单 [ ]\b\b");
scanf("%d",&q);
if(q==1) /*继续登录*/
{
system("cls");
login();
}
else if(q==2) /*返回主菜单*/
{
system("cls");
menu();
}
}
}
else
{
printf("\n\t\t\t用户名:");
scanf("%s",s.name);
printf("\t\t\t密码:");
int j=0;
while(1)
{
password[j]=getch();
if(password[j]=='\r')
break;
printf("*");
j++;
}
password[j]='\0';
flag=0; /*未登录时flag=0*/
for(i=0;i<n;i++)
if(!strcmp(s.name,stu[i].name)&&!strcmp(s.name,password))
{
flag=1; /*登录成功flag=1*/
break;
}
if(flag)
{
printf("\n\t登录成功!\n");
printf("\tPress any key to continue…\n");
getchar(); getchar();
system("cls");
menu(); /*登录成功后返回主菜单*/
}
else
{
m=0; /*设置m是为了避免陷入 登录失败时 跳不出登录界面*/
w=1; /*设置w是为了避免输出多次 “用户不存在”*/
int q; /*q为选项*/
do
{
if(w>0)
printf("用户名不存在或密码错误!\n"); /*第一次登录时输入不存在的用户时显示*/
printf("What do you want to do next? 1.继续登录 2.返回菜单 [ ]\b\b");
scanf("%d",&q);
if(q==1) /*继续登录*/
{
login();
m=1;
}
else if(q==2) /*返回主菜单*/
{
system("cls");
menu();
m=1;
}
else
{
printf("选择错误!请重新选择:\n");
w=0;
}
}while(m==0);
}
}
}