<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[boost.tokenizer und string(s.c_str()) verschlucken einen Doppelpunkt.]]></title><description><![CDATA[<p>guten Abend, ich habe folgenden Code, der funktioniert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/tokenizer.hpp&gt;

using namespace std;
using namespace boost;

int main(int argc, char** argv) {
    string tile_string(&quot;0:3:1|0:3:1|;-1:-1:-1|0:2:1|;&quot;);
    char_separator&lt;char&gt; column_separator(&quot;;&quot;);
    tokenizer&lt;char_separator&lt;char&gt; &gt; column_tokenizer(tile_string, column_separator);
    tokenizer&lt;char_separator&lt;char&gt; &gt;::iterator itr(column_tokenizer.begin());
    cout &lt;&lt; &quot;1:&quot; &lt;&lt; tile_string &lt;&lt; endl;
    cout &lt;&lt; &quot;2:&quot; &lt;&lt; *(++itr) &lt;&lt;endl;
}
</code></pre>
<p>die Ausgabe lautet:</p>
<blockquote>
<p>1:0:3:1|0:3:1|;-1<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    />-1|0:2:1|;<br />
2<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    />-1:-1|0:2:1|</p>
</blockquote>
<p>soll auch so sein.<br />
nun modifiziere ich zwei Zeilen so, dass sie folgendermaßen lauten:</p>
<pre><code class="language-cpp">string tile_string(&quot;0:3:1|0:3:1|;-1:-1:-1|0:2:1|;&quot;);
    char_separator&lt;char&gt; column_separator(&quot;;&quot;);
    tokenizer&lt;char_separator&lt;char&gt; &gt; column_tokenizer(string(tile_string.c_str()), column_separator); //hier
    tokenizer&lt;char_separator&lt;char&gt; &gt;::iterator itr(column_tokenizer.begin());
    cout &lt;&lt; &quot;1:&quot; &lt;&lt; string(tile_string.c_str()) &lt;&lt; endl; //und hier
    cout &lt;&lt; &quot;2:&quot; &lt;&lt; *(++itr) &lt;&lt;endl;
</code></pre>
<p>Die Ausgabe lautet nun</p>
<blockquote>
<p>1:0:3:1|0:3:1|;-1<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    />-1|0:2:1|;<br />
2:-1-1:-1|0:2:1|</p>
</blockquote>
<p>wie ihr sehen könnt ist bei 2 nach dem ersten -1 kein : mehr zu sehen.. wie kann das sein?</p>
<p>edit: hat sich erledigt. Er scheint ein Problem mit dem temporären Charakter der Variable zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260410/boost-tokenizer-und-string-s-c_str-verschlucken-einen-doppelpunkt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 04:29:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260410.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Feb 2010 19:13:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost.tokenizer und string(s.c_str()) verschlucken einen Doppelpunkt. on Fri, 05 Feb 2010 10:27:44 GMT]]></title><description><![CDATA[<p>guten Abend, ich habe folgenden Code, der funktioniert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/tokenizer.hpp&gt;

using namespace std;
using namespace boost;

int main(int argc, char** argv) {
    string tile_string(&quot;0:3:1|0:3:1|;-1:-1:-1|0:2:1|;&quot;);
    char_separator&lt;char&gt; column_separator(&quot;;&quot;);
    tokenizer&lt;char_separator&lt;char&gt; &gt; column_tokenizer(tile_string, column_separator);
    tokenizer&lt;char_separator&lt;char&gt; &gt;::iterator itr(column_tokenizer.begin());
    cout &lt;&lt; &quot;1:&quot; &lt;&lt; tile_string &lt;&lt; endl;
    cout &lt;&lt; &quot;2:&quot; &lt;&lt; *(++itr) &lt;&lt;endl;
}
</code></pre>
<p>die Ausgabe lautet:</p>
<blockquote>
<p>1:0:3:1|0:3:1|;-1<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    />-1|0:2:1|;<br />
2<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    />-1:-1|0:2:1|</p>
</blockquote>
<p>soll auch so sein.<br />
nun modifiziere ich zwei Zeilen so, dass sie folgendermaßen lauten:</p>
<pre><code class="language-cpp">string tile_string(&quot;0:3:1|0:3:1|;-1:-1:-1|0:2:1|;&quot;);
    char_separator&lt;char&gt; column_separator(&quot;;&quot;);
    tokenizer&lt;char_separator&lt;char&gt; &gt; column_tokenizer(string(tile_string.c_str()), column_separator); //hier
    tokenizer&lt;char_separator&lt;char&gt; &gt;::iterator itr(column_tokenizer.begin());
    cout &lt;&lt; &quot;1:&quot; &lt;&lt; string(tile_string.c_str()) &lt;&lt; endl; //und hier
    cout &lt;&lt; &quot;2:&quot; &lt;&lt; *(++itr) &lt;&lt;endl;
</code></pre>
<p>Die Ausgabe lautet nun</p>
<blockquote>
<p>1:0:3:1|0:3:1|;-1<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    />-1|0:2:1|;<br />
2:-1-1:-1|0:2:1|</p>
</blockquote>
<p>wie ihr sehen könnt ist bei 2 nach dem ersten -1 kein : mehr zu sehen.. wie kann das sein?</p>
<p>edit: hat sich erledigt. Er scheint ein Problem mit dem temporären Charakter der Variable zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1850619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850619</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Fri, 05 Feb 2010 10:27:44 GMT</pubDate></item></channel></rss>