提升regex_search无限循环

时间:2014-06-10 02:27:27

标签: c++ regex boost infinite-loop

我无法将Boost Regex与我的程序联系起来。就此而言,我的意思是Code :: Blocks一直给我带来一些麻烦。

以下是我从其他论坛获得的程序代码,附带一些额外的打印声明。

#include <boost/regex.hpp>

#include <string>
#include <iostream>

int main(int argc, const char** argv)
{
   std::string   str = "The boost library has a great opportunity for the regex";
   std::cout << "Here 1" << std::endl;
   boost::regex  rex("\\b(?:\\w+?)((\\w)\\2)(?:\\w+?)\\b");
   std::cout << "Here 2" << std::endl;
   boost::smatch res;
   std::cout << "Here 3" << std::endl;

   std::string::const_iterator begin = str.begin();
   std::cout << "Here 4" << std::endl;
   std::string::const_iterator end   = str.end();

   while (boost::regex_search(begin, end, res, rex))
   {
      std::cout << "Here 5" << std::endl;
      std::cout << "Word, we've searched, is \"" << res[0] << "\".  It has two \""
                << res[2]
                << "\" inside itself."
                << std::endl;

      begin = res[1].second;
   }
   return 0;
}

如果我在Code :: Blocks中按f9,程序运行正常,但是,当我尝试从Code :: Blocks外部运行时:

cd ~/letter_finder/bin/Release
./letter_finder

我得到以下输出:

dhcp-1218-32-207-253:Release admin$ ./ubuntu
Here 1
Here 2
Here 3
Here 4

我需要键盘中断才能退出。我知道问题在于链接到Boost,因为我已经能够使用终端运行Code :: Blocks中的每个新项目附带的Hello World程序。我搜索并尝试了Code :: Blocks wiki和Code :: Blocks论坛上的大部分Boost设置说明,但它们似乎没有用。有什么建议吗?

由于

0 个答案:

没有答案