我需要得到几个整数,并把它们放入一个数组在c + +中。
假设CIN
中的数字计数与数组长度相同。
得到几个整数与C + + - CIN并把它们放入数组
int numbers[10];
cin>>numbers;
事实上,我想在一行内输入10个数字,以cin
不知它自动分配编号,以阵列。我应该怎么做?
我需要得到几个整数,并把它们放入一个数组在c + +中。
假设CIN
中的数字计数与数组长度相同。
得到几个整数与C + + - CIN并把它们放入数组
int numbers[10];
cin>>numbers;
事实上,我想在一行内输入10个数字,以cin
不知它自动分配编号,以阵列。我应该怎么做?
下面是使用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));
}
您可以使用一个循环:
#include <iostream>
int main()
{
int numbers[10];
for (int i = 0; i < 10; ++i)
std::cin >> numbers[i];
}
UPDATE:
如果它必须是一行那么你可以使用这个(有点笨拙的解决方案):
#include <iostream>
int main()
{
int numbers[3];
std::cin >> numbers[0] >> numbers[1] >> numbers[2];
}
或者,您可以使用std::cin.getline
然后解析字符串。
UPDATE(再次):
#include <iostream>
int main()
{
int numbers[3];
int* input = numbers;
while (std::cin >> *input++ and input != 3 + numbers) ;
}
我需要在CIN上取一行。就像cin >> a,b,c,.... –
它总是10个元素吗? – Jonas
是的。我有一个固定的数组。不是10但可能更多。但正如我所说,在拨打电话CIN –
它的工作原理。谢谢你,任何方式 –