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