从未知长度的手动输入中提取单个单词

时间:2016-01-18 22:30:36

标签: c++ vector user-input

重新发帖,因为我没有在最后一个中包含足够的信息。

我尝试了最好的谷歌,似乎无法找到正确的答案(并不意味着它不是一个愚蠢的错误,因为我还是新的)

int main()
{
    vector<string> clauses;
    string test;

    cout << "Please enter your choice or choices\n\ ";

    while (cin >> test) {
        clauses.push_back(test);
    }

    return 0;
}

我不知道他们会输入多少选项,所以我将它们扔进了矢量。

目前,当它运行时,它不会接受任何用户输入,即使在按下输入时也让该人继续输入。 ç

提前致谢。保罗

1 个答案:

答案 0 :(得分:1)

以下代码适用于您想要执行的操作:

#include <vector>
#include <string>
#include <iostream>

int main()
{
    std::vector<std::string> clauses;
    std::string test;

    std::cout << "Please enter your choice or choices\n";

    do
    {
        getline(std::cin, test);
        if(!test.empty())
            clauses.push_back(test);

    }while (!test.empty());

    return 0;
}

getline函数将读取键盘上的任何文本并将其推入向量中,直到用户只使用Enter键,这将结束循环。