gpt4 book ai didi

c++ - Stringstream 到 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:45 24 4
gpt4 key购买 nike

我想知道从 std::stringstream 中写入的最佳方式是什么进入vector<int> .

这是 stringstream 中内容的示例: "31 #00 532 53 803 33 534 23 37"

这是我得到的:

int buffer = 0;
vector<int> analogueReadings;
stringstream output;

while(output >> buffer)
analogueReadings.push_back(buffer);

然而,似乎发生的是,它读取第一件事,然后到达 #00并返回 0因为它不是数字。

理想情况下,我想要的是,它达到 #然后跳过所有字符直到下一个空格。这可以用标志或其他东西实现吗?

谢谢。

最佳答案

#include <iostream>
#include <sstream>
#include <vector>

int main ( int, char ** )
{
std::istringstream reader("31 #00 532 53 803 33 534 23 37");
std::vector<int> numbers;
do
{
// read as many numbers as possible.
for (int number; reader >> number;) {
numbers.push_back(number);
}
// consume and discard token from stream.
if (reader.fail())
{
reader.clear();
std::string token;
reader >> token;
}
}
while (!reader.eof());

for (std::size_t i=0; i < numbers.size(); ++i) {
std::cout << numbers[i] << std::endl;
}
}

关于c++ - Stringstream 到 vector<int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139300/

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