我正在阅读来自“5 8 12 45 8 13 7”等文件的输入行。
我可以将这些整数直接放入数组中,还是必须先将它们放入字符串中?
如果最初使用字符串是必须的,我该如何将这个整数字符串转换为数组?
输入:“5 8 12 45 8 13 7”=>如此:{5,8,12,45,8,13,7}
答案 0 :(得分:7)
不,您不需要将它们转换为字符串。使用C ++标准库的容器和算法实际上非常简单(只要分隔符是空格或一系列空格,这就可以工作):
#include <iterator>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
// An easy way to read a vector of integers from the standard input
std::copy(
std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::back_inserter(v)
);
// An easy wait to print the vector to the standard output
std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " "));
}