用c++-CIN获取几个整数并将它们放入数组中

get several integer numbers with c++-CIN and put them into array

我需要获取几个整数并将它们放入 C++ 中的数组中。
假设 CIN 中的数字计数与数组长度相同。

int numbers[10];
cin>>numbers;

事实上,我想在一行内输入 10 个数字到 cin,它会以某种方式自动将数字分配给数组。我应该怎么做?

您可以使用循环:

#include <iostream>

int main()
{
    int numbers[10];
    for (int i = 0; i < 10; ++i)
        std::cin >> numbers[i];
}

更新:

如果它必须是一行那么你可以使用这个(有点笨拙的解决方案):

#include <iostream>

int main()
{
    int numbers[3];
    std::cin >> numbers[0] >> numbers[1] >> numbers[2];
}

或者,您可以使用 std::cin.getline 然后解析字符串。

更新(再次):

#include <iostream>

int main()
{
    int numbers[3];
    int* input = numbers;
    while (std::cin >> *input++ and input != 3 + numbers) ;
}

这是一个使用 std::vectorstd::copy_n 的 C++11 解决方案。

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>

int main()
{
    std::vector<int> v;
    std::copy_n(std::istream_iterator<int>(std::cin), 3, std::back_inserter(v));
}