用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::vector
和 std::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));
}
我需要获取几个整数并将它们放入 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::vector
和 std::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));
}