为什么 std:cin 无法识别回车键

why does not std:cin recognise enter key

本文关键字:识别 回车 std cin 为什么      更新时间:2023-10-16

我正在尝试从命令提示符获取输入,并将每个输入用空格或制表符分隔到矢量中,直到用户按"输入"。我做不到。 这是我的代码

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;
}

现在我遇到的问题是,在输入输入时,即使按回车键,输入屏幕仍然要求更多输入。

line 变量包含整行,但换行符除外。

要解析每一行,您可以将while循环替换为:

while (getline(cin, line))
{
    istringstream iss(line);
    while (iss >> value)
    {
        vect.push_back(value);
    }
}