Descripción del tema
Cuando intenta iniciar sesión en un sistema pero olvida la contraseña, el sistema generalmente solo le permite intentarlo un número limitado de veces. Cuando se excede el número de tiempos permitidos, la cuenta se bloqueará.
Esta pregunta le pide que implemente esta pequeña función.
Formato de entrada
Ingrese una contraseña y un número entero positivo N en la primera línea, que son la contraseña correcta y el número de intentos permitidos por el sistema.
Cada línea subsiguiente da una cadena no vacía que termina con un retorno de carro, que es la contraseña que el usuario está intentando ingresar.
Cuando solo una línea de lectura #
cuando finaliza la entrada de caracteres, y esta línea no es la entrada del usuario.
Se garantiza que la entrada tendrá al menos un intento.
La contraseña es una cadena no vacía de no más de 20, sin espacios, tabulación o retorno de carro
Formato de salida
Para cada entrada del usuario,
- Si es la contraseña correcta y el número de intentos no excede N, salga en una línea
Welcome in
y finalice el programa; - Si es incorrecto, emita en el formato en una línea
Wrong password: 用户输入的错误密码
; - Cuando el número de intentos de error llega a N veces, se emite otra línea
Account locked
y el programa finaliza.
Ejemplo de entrada 1
Correcto% pw 3
correcto% pw
Correcto @ PW ¿
Cuál es la contraseña?
Correcto% pw
输出 样例 1
Contraseña incorrecta: correcta% pw
Contraseña incorrecta: Corregir @ PW
Contraseña incorrecta: ¿cuál es la contraseña?
Cuenta bloqueada
Muestra de entrada 2
cool @ gplt 3
coolman @ gplt
coollady @ gplt
cool @ gplt
inténtalo de nuevo
Ejemplo de salida 2 Contraseña incorrecta: coolman @ gplt
Contraseña incorrecta: coollady @ gplt
Bienvenido a
Rango de datos
N ≤ 10
Simulación de solución de problemas :
细节
: Si el número se lee cuando la primera fila, una segunda fila con una getline
lectura en la cadena, con la primera getchar
filtrada 换行
, de lo contrario leerá una línea en blanco;
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int limit;
string password, str;
cin >> password >> limit;
getchar(); // 过滤换行
int cnt = 0;
while(getline(cin, str), str != "#")
{
if(str == password)
{
cout << "Welcome in" << endl;
break;
}
else
{
cnt ++;
cout << "Wrong password: " << str << endl;
if(cnt == limit)
{
cout << "Account locked" << endl;
break;
}
}
}
return 0;
}