原文链接:http://segmentfault.com/q/1010000004357985
方法一,可以分多行输入,每行不限个数,自动忽略输入中的空白符(空行、空格、制表符)。
std::vector<double> v;
for (double d; std::cin >> d; v.push_back(d)) {}
方法二,仅输入一行,自动忽略输入中的空白符(空行、空格、制表符)。
#include <sstream>
std::vector<double> v;
std::string line;
std::getline(std::cin, line);
std::istringstream iss(line);
for (double d; iss >> d; v.push_back(d)) {}
方法三,效果同方法一。
#include <iterator>
std::istream_iterator<double> in(std::cin), eof;
std::vector<double> v(in, eof);
注:把上述方法中的std::cin
换成任一std::istream
类型的变量或其子类的变量效果相同。例如换成std::ifstream
类型的变量即可读取文件。