Я использую метод 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;
И казалось, что "-------" каким-то образом покрыл первую строку.