C ++ Boost sregex_token_iterator аварийно завершает работу - PullRequest
0 голосов
/ 12 марта 2011

Я использую следующий код для получения имен файлов изображений из файла HTML.

Код выглядит примерно так:

std::tr1::regex term=(std::tr1::regex)r;
const std::tr1::sregex_token_iterator end;

for (std::tr1::sregex_token_iterator i(s.begin(),s.end(), term); i != end; ++i)
   {
     std::cout << *i << std::endl;
   }

s isстрока, которая уже объявлена ​​и содержит полную строку файла.

r - это строка, содержащая условие регулярного выражения для поиска.

Этот код действительно правильно извлекает значения из файла, но после достижения последнего он вылетает.Возможно, это связано с token_iterator i, но я понятия не имею, что его вызывает или как это исправить.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Я не знаю, если вы уже решили проблему, но найдите мои предложения ниже:

  1. Вы пытались изменить ++ i на i ++?
  2. Вы смотрели файл HTML, чтобы увидеть, действительно ли первое имя файла, которое показывает cout, является первым в файле?

Я думаю, что первый цикл cout напечатает второе совпадение в файле HTML.

Если вы уже решили эту проблему, сообщите мне о применяемом коде, я работаю с boost regex, и это поможет мне в будущих проблемах, которые могут у меня возникнуть.

С уважением,

Tchesko.

0 голосов
/ 19 мая 2011

Я действительно забыл об этом - я почти уверен, что в этом была внешняя проблема, связанная с линкером, так что это было довольно сложно выяснить.Но код был в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...