这道题起先找了很久错,死活都是14分,题目本身没什么难度。就是有一点要注意,就是输入的测试密码可能是包含空格的,所以必须用getline来读取。这点很容易被题目所误导。这是最坑的。同时要注意,使用getline时,必须用getchar吸收掉前面的换行符。
#include <iostream>
#include <string>
using namespace std;
int main(){
string pwd;int n;
int i=1,flag=0,flag2=0;
cin>>pwd>>n;
string str;
getchar();
while(true){
getline(cin,str);
if(str=="#"){
break;
}
if(flag==0){
if(str==pwd){
cout<<"Welcome in"<<endl;
flag=1;
}else if(i<=n){
cout<<"Wrong password: "<<str<<endl;
}
if(i==n&&flag==0){
cout<<"Account locked"<<endl;
flag=1;
}
i++;
}
}
return 0;
}