Хорошо, поэтому я пишу код для подтверждения имени пользователя и пароля.Я использую связанные списки для сохранения информации и запрашиваю у пользователя имя пользователя и пароль, которые должен подтвердить код.
Честно говоря, я не знаю, что не так с этим кодом
Он прекрасно работает, когда я ввожу правильное имя пользователя или пароль.
Но если это неправильно в первый раз изатем я ввожу правильную информацию, код подтверждает ее правильность, а затем снова запрашивает правильный пароль.
bool List::enterConfirmation(string username, string password, int check)
{
string userName;
bool a;
while (check <= 3)
{
ADMINNODEPTR p, q;
for (q = 0, p = listPtr; p != 0 && p->username != username; q = p, p = p->next);
if (p == 0)
{
cout << "\tInvalid Username. Try again\n\tUsername: ";
cin >> userName;
check++;
enterConfirmation(userName, password, check);
}
if (p != 0)
{
a = confirmAdmin(p, password, 0);
}
if (a == true)
{
return true;
}
else
return false;
}
cout << "You have exceeded your limit of tries." << endl;
return false;
}
bool List::confirmAdmin(ADMINNODEPTR p, string password, int check)
{
string passWord;
while (check <= 3 && check != -1)
{
if (p->passsword == password)
{
cout << "Identification Confirmed" << endl;
check = -1;
return true;
}
else
{
cin.ignore();
cout << "\tERROR: Incorrect Password. Please Try Again\n\tPassword: ";
getline(cin, passWord);
if (check < 3)
{
confirmAdmin(p, passWord, check);
/*return false;*/
}
if (check > 3)
{
cout << "You have exceeded your limit of tries." << endl;
return false;
}
}
}
}
Изначально я сделал код намного короче, аккуратнее и в одной функции, но тот факт, чтофункция не выходит (даже если я возвращаю значение) сводит меня с ума.Пожалуйста, помоги, если можешь.
Спасибо