Mot de passe du test PAT niveau B

Description du sujet
Lorsque vous essayez de vous connecter à un système mais que vous oubliez le mot de passe, le système ne vous permet généralement d'essayer qu'un nombre limité de fois. Lorsque le nombre de fois autorisé est dépassé, le compte est verrouillé.

Cette question vous demande d'implémenter cette petite fonction.

Format d'entrée
Entrez un mot de passe et un entier positif N sur la première ligne, qui correspondent au mot de passe correct et au nombre de tentatives autorisées par le système.
Chaque ligne suivante donne une chaîne non vide se terminant par un retour chariot, qui est le mot de passe que l'utilisateur tente de saisir.
Lorsqu'une seule ligne de lecture #lorsque l'entrée de caractères se termine, et cette ligne n'est pas l'entrée de l'utilisateur.

L'entrée est garantie d'avoir au moins une tentative.
Le mot de passe est une chaîne non vide de pas plus de 20, sans espaces, tabulation ou retour chariot

Format de sortie
Pour chaque entrée de l'utilisateur,

  • Si c'est le mot de passe correct et que le nombre de tentatives ne dépasse pas N, sortez sur une ligne Welcome inet terminez le programme;
  • Si ce n'est pas le cas, affichez le format sur une seule ligne Wrong password: 用户输入的错误密码;
  • Lorsque le nombre de tentatives d'erreur atteint N fois, une autre ligne est sortie Account lockedet le programme se termine.

Exemple d'entrée 1
Correct% pw 3
correct% pw
Correct @ PW
quel mot de passe!
Correct% pw

输出 样例 1
Mauvais mot de passe: correct% pw
Mauvais mot de passe: Correct @ PW
Mauvais mot de passe: quel mot de passe!
Compte bloqué

Échantillon d'entrée 2
cool @ gplt 3
coolman @ gplt
coollady @ gplt
cool @ gplt
réessayer


Exemple de sortie 2 Mot de passe incorrect: coolman @ gplt
Mot de passe incorrect: coollady @ gplt
Bienvenue dans

Plage de données
N ≤ 10



Simulation de solution de problème :

细节: Si le nombre est lu lors de la première ligne, une deuxième ligne avec une getlinelecture dans la chaîne, avec le premier getcharfiltré 换行, sinon il lira une ligne vide;

#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;
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46239370/article/details/114378452
conseillé
Classement