C ++ boost split string

Я использую метод 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;

, и казалось, что "-------" каким-то образом перекрывает первую строку.

49
задан Noam M 2 August 2017 в 00:33
поделиться