记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));
	}
posted @ 2022-07-26 11:01  YaosGHC  阅读(685)  评论(0)    收藏  举报