繁体   English   中英

在C ++中逐字解析用户输入的一行

[英]Parse a line of user input word by word in C++

因此,我试图从C ++中的用户输入中解析未知数量的字符串,并将其存储在向量中。

我不知道该怎么做。

可以这么说,用户输入以下内容:Money Linux fire Computers

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

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

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

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

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

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

string in;
while (cin >> in) {
    input.push_back(in);
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM