0

所以我试图从 C++ 中的用户输入中解析未知数量的字符串,并希望将它们存储在一个向量中。

我不知道该怎么做。

所以说用户输入:Money Linux fire Computers

我希望能够获取每个单词并将其存储到向量中。我最初有一些看起来像这样的东西,但它失败了:

while(in!="")
{
    cin>>in;
    input.push_back(in);
}

任何指向我应该从哪里开始的指针?

4

2 回答 2

3

切勿在条件检查之外使用输入操作。编写代码的规范方法是:

std::vector<std::string> result;
for (std::string word; std::cin >> word; ) { result.push_back(word); }

(在 C++11 中,您可以result.emplace_back(std::move(word));改为这样说。)

于 2012-05-06T14:43:59.650 回答
0
string in;
while (cin >> in) {
    input.push_back(in);
}

流上的>>运算符返回流。通过检查 std::istream 是否处于良好状态,将其转换为布尔值。如果它到达输入的末尾,则表达式将false在下一次读取时。

当提取失败时,不会将空白字符串写入in参数,这就是您的循环不起作用的原因。

于 2012-05-06T14:42:30.980 回答