8、简单密码检测程序:输入密码与已知密码password进行比较。假如正确,通过break语句跳出循环;否则,系统提示“口令错误,按任意键继续”,不过3次机会,超过3次系统会自动退出程序。
第一次输入正确密码,可以识别
但第一次输错,再输入正确密码就会显示错误
我不理解帮帮我吧
8、简单密码检测程序:输入密码与已知密码password进行比较。假如正确,通过break语句跳出循环;否则,系统提示“口令错误,按任意键继续”,不过3次机会,超过3次系统会自动退出程序。
第一次输入正确密码,可以识别
但第一次输错,再输入正确密码就会显示错误
我不理解帮帮我吧
在遇到scanf函数的时候,程序并不会马上让你输入数据,程序会先检测输入缓冲区有没有数据,没有了才会让你输入数据。
你在输入一个字符是不是还得按一下回车,这个回车其实也是一个字符,所以他会把回车字符也给存到数组b里面,导致错误。
所以你每输入一个字符就要消除附带的回车字符,也就是把回车字符从输入缓冲区里面拿出来丢掉,就要用到getchar这个函数。
代码如下,望采纳:
int main()
{
char arr[8] = {'a','b','c','d','e','f','g','h'};
char brr[8] = {0};
int i = 0,flag = 0;
for(int j=0;j<3;j++){
printf("输入\n");
int p = 0;
flag = 0;
for(i=0;i<8;i++){
scanf("%c",&brr[i]);
getchar(); //清除回车符
}
for(i=0;i<8;i++){
if(arr[i] == brr[i])
++ flag;
}
if(8 == flag){
printf("正确\n");
return 0;
}
else
printf("错误\n");
}
printf("错误过多!\n");
return 0;
}