title: Boost.spirit: parsing number char and string
body: <p>I need to parse a line containing an unsigned int, the character <code>X</code> that is to be discarded, and a string, all separated by one or more spaces.  e.g., <code>1234 X abcd</code></p>
  
  <pre><code>bool a = qi::phrase_parse(first, last,
        uint_[ref(num) = _1] &gt;&gt; lit('X') &gt;&gt; lexeme[+(char_ - ' ')],
        space, parsed_str);
  </code></pre>
  
  <p>The above code parses the three parts, but the string ends up containing a junk character (<code>�abcd</code>) and having a size of 5 and not 4.</p>
  
  <p>What is wrong with my parser? and why is there junk in the string?</p>