使用定界符结束用户输入的循环

时间:2018-07-06 10:08:47

标签: c++

我想创建数组而不知道大小,仅取决于用户输入。 诀窍是我将从用户那里获得的唯一输入是数组ex的原始数据。 1 2 3 4 5。 我的第一个想法是创建一个循环来收集数据并对它们进行计数,直到找到一些定界符为止。但是我不知道该怎么做,有可能吗? 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一种方法是:

std::vector<int> data;
std::copy(std::istream_iterator<int>(std::cin), {},
          std::back_inserter(data));

其他:

std::vector<int> data;
int x;
while (std::cin >> x) {
    data.push_back(x);
}

根据要求,还有其他方法。

如果单行提供数据,则:

std::vector<int> data;
std::string line;
if (std::getline(std::cin, line)) {
    std::copy(std::istream_iterator<int>(std::istringstream(line), {},
              std::back_inserter(data));
}