#include <iostream>
#include <boost/spirit/include/qi.hpp>
namespace qi = boost::spirit::qi;
int main ()
{
std::string input(" aaa ");
std::string::iterator strbegin = input.begin();
std::string p;
qi::phrase_parse(strbegin, input.end(),
qi::lexeme[+qi::char_],
qi::space,
p);
std::cout << p << std::endl;
std::cout << p.size() << std::endl;
}
在此代码中,解析器会将"aaa "
分配给p
。为什么不跳过所有空格?我希望p
为"aaa"
。如何解决?
答案 0 :(得分:3)
您要求Spirit使用qi::lexeme
发出空格。比较:http://www.boost.org/doc/libs/1_55_0/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html
规则+(qi::char_ - qi::space)
应该这样做。