我试图将多个整数从一个输入行读取到一个数组中,例如。输入: 100 200 300 400,所以数组是:a= 100,a1 = 200,a2 = 300,a3 = 400事情是,整数的数目是未知的,所以数组的大小是未知的。
发布于 2012-02-20 07:12:10
您应该使用自动调整自身大小的容器,例如std::vector。
例如,如下所示:
#include <string>
#include <iostream>
#include <sstream>
#include <utility>
#include <iterator>
std::string line;
getline(instream, line);
std::istringstream this_line(line);
std::istream_iterator<int> begin(this_line), end;
std::vector<int> values(begin, end);发布于 2012-02-20 07:10:13
您可以使用std::vector来执行以下操作:
std::vector<int> myVector;
std::string line;
std::getline(std::cin, line);
std::istringstream os(line);
int i;
while(os >> i)
myVector.push_back(i);此代码需要包含以下内容:<iostream>、<string>、<sstream>和<vector>。
发布于 2012-02-20 07:13:46
插入器和流迭代器可以很好地做到这一点:
#include <iterator>
#include <vector>
#include <iostream>
#include <algorithm>
std::vector<int> numbers;
std::copy(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::back_inserter(numbers));或者,就像@Ben Voigt所说的那样,一次性地从输入构造向量(如果这是一个选择):
std::vector numbers(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>());如果您的输入要求比较复杂,可以用合适的字符串流替换std::cin。
https://stackoverflow.com/questions/9354192
复制相似问题