c ++仅从ostringstream中提取数字

c++ extract just numbers from an ostringstream

如果我有一个 ostringstream,其中包含由 -

分隔的各种数字

(即:space - space 顺便说一句)

我可以单独提取每个数字吗?

像这样的东西可能有用....

#include <boost/algorithm/string.hpp>
std::vector<int> ints;
boost::split(ints, " - ",std::stoi (stream.str()));

使用此处的一个 spiting 函数: Split a string in C++? 将它们存储为 std::vector 中的字符串, 然后使用 std::stoi (或等效的)将字符串解析为整数,用 try / catch 包围每个调用。

示例(拆分后):

for (int i = 0; i < arrayOfStrings.size(); i++)
{
    try
    {
        int myInt = std::stoi(arrayOfStrings[i]);
    }
    catch (std::exception& e)
    {
        std::cout<<e.what()<<"\n";
    }
}