PAT B1067 试密码(C++)

PAT甲级目录 | PAT乙级目录

题目描述

B1067 试密码

解题思路

模拟题。每次密码输入正确且尝试次数小于等于最大尝试次数,为成功登录;当密码输入错误,如果算上该次尝试正好已经达到最大次数,则在输出密码错误信息后,退出系统。

易错点

  • getchar();
    • cin 结束,仍有一个回车符没有吸收

也许陌生的知识点

  • getline(cin, str);
    • 输入一整行的字符串,包括空格等
    • 所需头文件: iostream

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
using namespace std;
int main(){
int N, cnt = 0;
string password, temp;
cin >> password >> N;
getchar(); // 仍有一个回车符没有吸收
getline(cin, temp);
while(temp != "#"){
cnt++;
if(temp == password){ // 密码正确
cout << "Welcome in" << endl;
break;
} else{ //密码错误
cout << "Wrong password: " << temp << endl;
if(cnt >= N){
cout << "Account locked" << endl;
break;
}
}
getline(cin, temp);
}
return 0;
}