Мова С++. Код введення паролю. Правильний пароль - 123ab56c. Виправте код так, щоб при неправильному введенні паролю не відбувалась ця помилка. І виправте ще якійсь помилки, якщо помістите.
int MenuAdmin(const char* fn) {
regex pattern("123ab56c");
char password[9], ch;
int i = 0;
cin.ignore();
system("cls");
cout << endl << "\n\n\n\n\n\n";
do {
//system("cls");
cout << endl << "\n\t\t\tВведiть пароль: ";
while ((ch = _getche()) != '\n' && i < 8){
password[i] = ch;
cout << "*";
i++;
}
password[i] = '\0';
string pass = password;
if (regex_match(pass, pattern)) {
break;
}
else {
cout << "\nПароль неправильний!" << endl;
}
} while (true);
}
Answers & Comments
Verified answer
int MenuAdmin(const char* fn) {
regex pattern("123ab56c");
char password[9], ch;
int i = 0;
cout << endl << "\n\n\n\n\n\n";
do {
i = 0; //
cout << endl << "\n\t\t\tВведiть пароль: ";
while ((ch = _getch()) != '\r' && i < 8){ //
password[i] = ch;
cout << "*";
i++;
}
password[i] = '\0'; //
string pass = password;
if (regex_match(pass, pattern)) { //
break;
}
else {
cout << "\nПароль неправильний!" << endl;
cout << "Спробуйте ще раз." << endl;
}
} while (true);
return 0;
}