从标准输入读取整数并将值输入到矢量中

时间:2015-05-08 08:05:41

标签: c++ vector

我想只读取标准输入的第一行,并将值放入向量(未知数量的条目)。每个向量元素保持一个值(即vector[1]=1vector[2]=-30 ...)

E.g。

1 -30 10 300

我尝试过使用while循环和cin,但我似乎无法让它停在终止字符/n上。我一直试图用getline来实现这一点,但我没有运气。有没有一种很好的方法可以将标准输入的整数存储到向量中?

感谢任何帮助, 先感谢您。 :)

3 个答案:

答案 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