所以我试图用C ++中的用户输入解析未知数量的字符串,并希望将它们存储在向量中。
我不知道该怎么做。
所以说用户输入: Money Linux fire Computers
我希望能够将每个单词存储到一个向量中。我最初有一些看起来像这样的东西,但它失败了:
while(in!="")
{
cin>>in;
input.push_back(in);
}
我应该从哪里开始?
答案 0 :(得分: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));
。)
答案 1 :(得分:0)
string in;
while (cin >> in) {
input.push_back(in);
}
流上的>>
运算符返回流。通过检查std :: istream是否处于良好状态,将其转换为布尔值。如果它到达输入的末尾,则表达式将在下一次读取时为false
。
当提取失败时,空字符串不会写入in
参数,这就是循环无效的原因。