赛码网输入输出
最近本Tu在投实习,然后前两天做了美团的实习机试,美团机试是在赛码网上进行的,然后由于跟平时写letecode不一样,需要自己写输入输出。
然后就去练习了一下,代码如下:
#include <iostream>
#include <string>
using namespace std;
int main () {
int n;
cin >> n;
string input;
while(n > 0) {
--n;
getline(cin, input);
cout << n << input << endl;
}
return 0;
}
遇到了以下问题:cin获取了上面案例中的3后,再用getline,会获取到第一行(第一行没有内容了)
于是引发了我的思考:cin遇到换行符会停止,但是不能进入到下一行,于是用getline还是会获取到第一行这个空行。
于是我用了另外两种思路,一是直接用cin去获取下面的字符串(用getline 是为了避免下面行中有空格的情况,本题没有这种情况,于是可以直接用cin获取)。二是用getline+stringstream来获取3的值。
#include <iostream>
#include <string>
using namespace std;
int main () {
int n;
cin >> n;
string input;
while(n > 0) {
--n;
cin >> input;
cout << n << input << endl;
}
return 0;
}
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main () {
int n;
string s;
getline(cin, s);
stringstream str(s);
str >> n;
string input;
while(n > 0) {
--n;
getline(cin, input);
cout << n << input << endl;
}
return 0;
}
如果有hxd遇到了同样的问题,可以按照自己的需求用上述两种办法,如果有其他解决办法,也请给我留言,让我学习一下=-=。