I'm using the boost::split
method to split a string as this:
I first make sure to include the correct header to have access to boost::split
:
#include <boost/algorithm/string.hpp>
then:
vector<string> strs;
boost::split(strs,line,boost::is_any_of(""));
and the line is like
"test test2 test3"
This is how I consume the result string vector:
void printstrs(vector<string> strs)
{
for(vector<string>::iterator it = strs.begin();it!=strs.end();++it)
{
cout << *it << "-------";
}
cout << endl;
}
But why in the result strs
I only get "test2"
and "test3"
, shouldn't be "test"
, "test2"
and "test3"
, there are
(tab) in the string.
Updated Apr 24th, 2011: It seemed after I changed one line of code at printstrs
I can see the first string. I changed
cout << *it << "-------";
to
cout << *it << endl;
And it seemed "-------"
covered the first string somehow.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…