记C++读取键盘输入
力扣关键代码模式习惯了,之前笔试(纸写)和这次(机试)题一上来就让我很懵
C++从键盘读取一行或多行或者不确定长度的数据,怎么读啊啊啊啊啊啊啊啊啊啊!!超级麻烦,平常写力扣也不需要我自己处理输入啊
然后Java有Scanner对象虽然很方便,但是我也没拿Java写过算法啊,也不熟悉
做题连输入都不知道怎么获取,真是超级尴尬
一个数字+一行字符串
3
test
int n;
cin >> n;// cin读到换行符之后会停止读入,但是不会把这个换行符读进去
string str;
getchar();// 用来吧第一行末的换行符吞掉,不然后面的getline会读入换行符,然后停止读取。又因为getline函数会把换行符丢弃,最终读到的就为空
getline(cin, str);
其实现在发现直接用cin也没问题,只是要是编译器老了就不支持
一个数字+一串数字
4
5 7 3 9
int main() {
int n, count;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; ++i) {
cin >> nums[i];
}
for (int num : nums) {
cout << num << " ";
}
return 0;
}
不确定行数的数字
以0结尾
3
10
81
0
vector<int> in;
string temp;
// 读入失败getline会返回一个空
while (getline(cin, temp) && temp != "0") {
in.push_back(stoi(temp));
}