Я использую метод boost::split
, чтобы разделить строку следующим образом:
Сначала я обязательно включу правильный заголовок, чтобы иметь доступ к boost::split
:
#include <boost/algorithm/string.hpp>
затем:
vector<string> strs;
boost::split(strs,line,boost::is_any_of("\t"));
и строка выглядит как
"test test2 test3"
Вот как я получаю вектор строки результата:
void printstrs(vector<string> strs)
{
for(vector<string>::iterator it = strs.begin();it!=strs.end();++it)
{
cout << *it << "-------";
}
cout << endl;
}
Но почему в результатеstrs
Я получаю только "test2"
и "test3"
, не должно быть "test"
, "test2"
и "test3"
, в строке \t
(табуляция).
Обновлено 24 апреля 2011 года: Казалось, после того, как я изменил одну строку кода в printstrs
, я вижу первую строку.Я изменил
cout << *it << "-------";
на
cout << *it << endl;
И казалось, что "-------"
как-то перекрывает первую строку.