Я использую метод 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
(tab).
Обновлено 24 апреля 2011 г. Казалось, что после того, как я изменил одну строку кода на printstrs
, я вижу первую строку. Я изменил
cout << *it << "-------";
to
cout << *it << endl;
И казалось, что "-------"
каким-то образом покрыл первую строку.