我正尝试从命令提示符输入输入,并将每个输入用空格或制表符分隔为向量,直到用户按下"输入"。我无法做到。这是我的代码
template <typename T>
vector <T> process_input_stream() {
T value;
vector <T> vect;
string line;
//read input and populate into vect until return key is pressed
while (getline(cin, line, '\n')){
cin >> value;
std::cin.clear();
std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
vect.push_back(value);
}
return vect;
}
现在我遇到的问题是,当输入输入时,即使按下回车键,输入屏幕仍然需要更多输入。
答案 0 :(得分:3)
line
变量包含整行,但换行符除外。
要解析每一行,您可以将while
循环替换为:
while (getline(cin, line))
{
istringstream iss(line);
while (iss >> value)
{
vect.push_back(value);
}
}