Jea*_*Luc 4 c++ stringstream visual-studio-2010 lexical-cast
我想知道什么是最好的方法,从一个写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);
Run Code Online (Sandbox Code Playgroud)
然而,似乎发生了什么,它首先读取,然后它到达#00并返回,0因为它不是一个数字.
理想情况下,我想要的是,它到达a #然后只是跳过所有字符直到下一个空格.这可能是旗帜或其他什么?
谢谢.
#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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7926 次 |
| 最近记录: |