Неверно работает парсинг слов

Я пытаюсь написать парсер текста, но возникает проблема где то в этом куске кода:

 class TokenParser
{
private:
    vector<string>lines;
    vector<string>tokens;
    vector<string>words;
    vector<int>digits;
    string delimiter = " \t\n";

public:
     TokenParser(ifstream& in)//считываем строки из исходного файла
     {
         string new_line;
         string new_token;
         string my_line;
         while (getline(in, new_line))//считываем строки в вектор строк
         {
             lines.push_back(new_line);
         }
         for (auto line : lines)//итерируемся по вектору строк и считываем все токены в вектор токенов
         {
             my_line = line;
             while (true)
             {
                 size_t delimiter_pos = my_line.find_first_of(delimiter);
                 if (delimiter_pos == string::npos)
                 {
                     tokens.push_back(my_line);
                     break;
                 }
                 else
                 {
                     if (delimiter_pos == 0)
                     {
                         my_line = my_line.substr(delimiter_pos + 1);
                     }
                     else
                     {
                         new_token = my_line.substr(0, delimiter_pos);
                         tokens.push_back(new_token);
                         my_line = my_line.substr(delimiter_pos + 1);
                     } 
                 }
             }
         }

в токены, видимо, попадают пустые строки и я никак не могу понять в чем проблема и как исправить.


Ответы (0 шт):