我想只读取标准输入的第一行,并将值放入向量(未知数量的条目)。每个向量元素保持一个值(即vector[1]=1
,vector[2]=-30
...)
E.g。
1 -30 10 300
我尝试过使用while循环和cin
,但我似乎无法让它停在终止字符/n
上。我一直试图用getline
来实现这一点,但我没有运气。有没有一种很好的方法可以将标准输入的整数存储到向量中?
感谢任何帮助, 先感谢您。 :)
答案 0 :(得分:1)
std::string line;
if( std::getline(std::cin, line) ) {
std::istringstream ss(line);
int i;
while(ss >> i) {
vec.push_back(i);
}
}
作为替代方案,您还可以在ss
上使用istream iterators。
答案 1 :(得分:0)
以下代码适用于您的问题。 Mohit的答案应该使用getline而不是readline
vector <int> vec;
string input;
getline(cin,input);
istringstream ss(input);
int num;
while (ss >> num)
{
vec.push_back(num);
}
vector<int>::iterator itr = vec.begin();
while (itr != vec.end())
{
cout << *itr << endl;
itr++;
}
该代码段打印回标准输出。
答案 2 :(得分:0)
为什么您无法停止使用cin
,它会忽略空格和行尾\n
。