下面是我正在做的游戏的登录模块(密码还没判定,代码在最下面),但发现了一个问题:当我密码输错的时候,应该是要清屏并重新输入账号和密码,但是却变成了这个样子:
Please enter the account number
Please enter the password
就是它直接跳过了输入账号的地方。
大佬能帮我解决这个问题吗?
code
void signin()
{
int userAccountNumber;
char userPassword[20];
int tot;
char key;
int ifmAccountNumber=0;
char ifmPassword[20];
bool judge=false;
while(!judge)
{
system("cls");
printf("Please enter the account number\n");
userAccountNumber=0;
printf("%d\n",userAccountNumber);
scanf("%d",&userAccountNumber);
printf("Please enter the password\n");
tot=0;
do
{
key=getch();
if(key!='\n'&&key!='\r')
{
printf(".");
userPassword[tot]=key;
tot++;
}
}while(key!='\n'&&key!='\r');
// printf("%d\n",userAccountNumber);
// for(int i=0;i<tot;i++) printf("%c",userPassword[i]);
tot=1;
judge=false;
freopen("osmsAccountNumber.ifm","r",stdin);
while(scanf("%d",&ifmAccountNumber)&&ifmAccountNumber!=-1)
{
if(ifmAccountNumber==userAccountNumber)
{
judge=true;
break;
}
tot++;
}
fclose(stdin);
if(!judge)
{
printf("\n【System】Account Number is wrong!");
Sleep(1000);
}
else
{
}
}
}