<?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[stringstream - Trennung bei Leerzeichen verhindern]]></title><description><![CDATA[<p>Moin.</p>
<p>Ich verzweilfe gleich mit meinem stringstream. Wenn ich einen String in einem Stringstream habe und diesen wieder in einen String zurückschreiben möchte, gibt er ihn nur bis zum ersten Leerzeichen aus:</p>
<pre><code class="language-cpp">// Pseudocode
string buffer;
stringstream is(&quot;Hallo Welt&quot;);
is &gt;&gt; buffer;
return buffer; // nur 'Hallo' drin
</code></pre>
<p>Gibt's da ne Möglichkeit das in der Klasse abzuschalten?</p>
<p>Danke</p>
<p>/edit:<br />
Ja, ich weiß. In diesem kleinem Kontext ist string -&gt; stringstream -&gt; string natürlich sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276397/stringstream-trennung-bei-leerzeichen-verhindern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 11:30:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276397.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Nov 2010 16:11:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 16:12:02 GMT]]></title><description><![CDATA[<p>Moin.</p>
<p>Ich verzweilfe gleich mit meinem stringstream. Wenn ich einen String in einem Stringstream habe und diesen wieder in einen String zurückschreiben möchte, gibt er ihn nur bis zum ersten Leerzeichen aus:</p>
<pre><code class="language-cpp">// Pseudocode
string buffer;
stringstream is(&quot;Hallo Welt&quot;);
is &gt;&gt; buffer;
return buffer; // nur 'Hallo' drin
</code></pre>
<p>Gibt's da ne Möglichkeit das in der Klasse abzuschalten?</p>
<p>Danke</p>
<p>/edit:<br />
Ja, ich weiß. In diesem kleinem Kontext ist string -&gt; stringstream -&gt; string natürlich sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973639</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 16:20:24 GMT]]></title><description><![CDATA[<p>Dazu gibt es zumindest keine einfache Möglichkeit. Eventuell gibt es da Möglichkeiten, wenn man den Unterbau des Streams verändert, aber ich mag da gerade nicht so genau drüber nachdenken, denn Gegenfrage: Wo soll die Leseaktion denn stattdessen aufhören?<br />
Wenn du diese Frage beantworten kannst, dann kannst du die passende Lesemethode dafür wählen. Der Operator &gt;&gt; ist ja anscheinend nicht das was du suchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973646</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 16:26:35 GMT]]></title><description><![CDATA[<p>Wie bei jedem anderen Stream auch:</p>
<pre><code class="language-cpp">getline(is, buffer);    // optional mit delimiter als dritten Parameter
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1973648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973648</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 16:27:06 GMT]]></title><description><![CDATA[<p><code>return is.str();</code> oder auch <code>getline(is,buffer);</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973649</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:27:06 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 16:40:30 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<p><code>return is.str();</code> oder auch <code>getline(is,buffer);</code> .</p>
</blockquote>
<p>Nun gut, dann muss ich den Kontext doch erklären. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Klasse zum Ein- und Auslesen von Config-Files. Im File habe ich Daten nach dem Schema &quot;Key:Value&quot;. Meine Klasse liest alles ein und ich möchte nun eine spezialisierte Methode, die - abhängig vom mitgegebenen Typ - mir die Werte zurückgibt. Daher kann ich nicht return is.str() nehmen, weil ich nicht weiß, ob ich einen String habe, oder einen anderen Typ.</p>
<pre><code class="language-cpp">template&lt;class T&gt;
T getValue(string key)
{
	map&lt;string, string&gt;::iterator it = content.find(key);
	if(it == content.end())
		throw CFIOKeyNotFoundEx(key.c_str());

	T buffer;
	stringstream is(it-&gt;second);
	is &gt;&gt; buffer;

	return buffer;
}
</code></pre>
<p>Ich denke das Prinzip ist klar. Wenn ich nun einen String als Eintrag habe, darf der natürlich Leerzeichen enthalten. Ich muss aber IMHO den obigen Weg nehmen, damit es für alle Typen allgemeingültig ist. Ich möchte auch keine extra-Methode nur für Strings haben, wo ich diese gesondert behandle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973654</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 17:28:37 GMT]]></title><description><![CDATA[<p>Du könntest die Template-Methode einfach für &quot;string&quot; spezialisieren:</p>
<pre><code class="language-cpp">template&lt;&gt;
string getValue&lt;string&gt;(string key)
{
    map&lt;string, string&gt;::iterator it = content.find(key);
    if(it == content.end())
        throw CFIOKeyNotFoundEx(key.c_str());

    return it-&gt;second;
}
</code></pre>
<p>Am Anwender-Code ändert sich dann nichts...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973691</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Mon, 01 Nov 2010 17:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 19:24:51 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Du könntest die Template-Methode einfach für &quot;string&quot; spezialisieren:</p>
</blockquote>
<p>Oh man, das ich da nicht selbst drauf gekommen bin ist ja fast peinlich... Danke, werde ich morgen gleich ausprobieren. Danke schön!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973780</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Mon, 01 Nov 2010 19:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to stringstream - Trennung bei Leerzeichen verhindern on Mon, 01 Nov 2010 20:21:27 GMT]]></title><description><![CDATA[<p>Super, habs ausprobiert und funktioniert perfekt. Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973809</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Mon, 01 Nov 2010 20:21:27 GMT</pubDate></item></channel></rss>