我是C ++的初学者,刚刚开始。
我想使用cin
读取由空格分隔的整数行,存储并处理它们,比如说将每个整数乘以2。
输入为:
1 2 3 4
及其输出为:
2 4 6 8
我希望程序在按 Enter 后立即执行。
我该怎么做?
答案 0 :(得分:3)
简单的for
循环并将值存储在vector
中将为您完成工作;
#include <iostream>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
int main() {
vector<int> vec;
std::string input;
getline(cin, input); // get input until newline
istringstream sstr(input);
int ele;
while (sstr >> ele) {
vec.push_back(ele);
}
transform(vec.begin(), vec.end(), vec.begin(), [](int x) {
return 2 * x;
});
for (const auto &ele: vec) {
cout << ele << " ";
}
return 0;
}
编辑:
根据Jerry Coffin的正确建议,您可以通过transform
将for
和std::transform(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "), [](int x) { return 2 * x; });
循环合并为一行
请不要忘记为其包含iterator
头文件。