【发布时间】:2020-09-28 13:39:14
【问题描述】:
从标题中可以看出,我想检查密码,但使用 do while 循环。我想要做的是,要求用户输入密码,如果密码输入错误 3 次,程序应该退出。
这里是代码,希望你明白我想要做什么
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int n = 0;
char s[10] = {'s','a','m','e','d'};
char unos[10];
int i;
do
{
for (i = 0; i < 5;i++) {
unos[i] = _getch();
_putch('*');
}
cout << endl;
for (i = 0; i < 5; i++)
{
if (unos[i] == s[i])
{
cout << "Your password is correct" << endl;
break;
}
else if (unos[i] != s[i])
{
do
{
cout << "Your password is incorrect" << endl;
cout << "Enter again: ";
for (i = 0; i < 5;i++) {
unos[i] = _getch();
_putch('*');
}
n++; // how many times user entered the password
}while(unos[i] != s[i]);
}
}
}while(unos[i] != s[i] && n < 3);
return 0;
}
控制台输出是正确的,或者如果我第一次输入正确的密码,它会执行我想要的操作,但如果我犯了错误,之后它不会执行任何操作,或者实际上它确实再次要求我输入密码但是它不,显示消息Your password is correct。
如果您现在即使使用递归也如何完成此任务,它将对我有很大帮助。
在此先感谢:)
【问题讨论】:
-
<conio.h>仅适用于 Windows,添加 [windows] 标签会很好。
标签: c++ arrays validation passwords