gpt4 book ai didi

命令末尾的 C++ std::stringstream 空格

转载 作者:行者123 更新时间:2023-11-30 02:19:59 27 4
gpt4 key购买 nike

 void Parameters::parseCommand(std::string &input, std::vector<std::string> &params)
{
std::string par_str;
std::stringstream in_str_strm(input);

while (in_str_strm.good())
{
in_str_strm >> par_str;
params.push_back(par_str);
}
...
}

我的代码看起来像这样,我有一个问题,如果用户在此命令后输入空格,最后一个“par_str”被 push_back 两次。

例子:

输入:“你好 5 5”

String-Vector 中的元素:{"你好", "5", "5", "5"}

我怎样才能避免这种情况?

最佳答案

使用in_str_strm >> par_str 作为条件。这允许您在 输入后检查流,这样当输入失败时params.push_back(par_str); 将不会执行。请注意,与 good() 不同,如果到达 EOF 但读取成功,它将转换为 true,因此如果输入末尾没有空格,它也可以工作。

while (in_str_strm >> par_str)
{
params.push_back(par_str);
}

关于命令末尾的 C++ std::stringstream 空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50191748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com