二刷
一开始用cin>>temp;总是2,5测试点过不了,直到用getchar()和getline()才过
二刷也是这两个点,草,下次一长串别管题目说没说什么条件一律用getline()。
#include<iostream>
using namespace std;
int main(){
string s;
int n,count=1;
cin>>s>>n;
getchar();
for(int i=0;;i++,count++){
string temp;
getline(cin,temp);
if(count>n||temp=="#") break;
if(temp==s){
cout<<"Welcome in"<<endl;
break;
}
else cout<<"Wrong password: "<<temp<<endl;
if(count==n) {
cout<<"Account locked"<<endl;
break;
}
}
return 0;
}
我的代码:
一开始用cin>>temp;总是2,5测试点过不了,直到用getchar()和getline()才过
多默写几遍柳神的代码,我的思路有点混乱
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main() {
string s,temp;
int n;
cin >> s >> n;
int count = 0;
getchar();
while(1) {
getline(cin,temp);
//cin>>temp;过不了
if(temp == "#"){break;}
if (temp != "#") {
if (count < n) {
if (temp == s) {
cout << "Welcome in" << endl;
break;
}
else {
cout << "Wrong password: " << temp << endl;
count++;
}
}
}
}
if(count>=n){
cout << "Account locked" <<endl;
}
return 0;
}
柳神的代码
#include <iostream>
using namespace std;
int main() {
string password, temp;
int n, cnt = 0;
cin >> password >> n;
getchar();
while(1) {
getline(cin, temp);
if (temp == "#") break;
cnt++;
if (cnt <= n && temp == password) {
cout << "Welcome in";
break;
} else if (cnt <= n && temp != password) {
cout << "Wrong password: " << temp << endl;
if (cnt == n) {
cout << "Account locked";
break;
}
}
}
return 0; }