<?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: Integer oder String?]]></title><description><![CDATA[<p>Hi Community! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich möchte in einem String die einzelnen Teilwörter aufschlüsseln. Dazu muss ich aber auch wissen, ob sich an einer bestimmten Stelle ein Integer befindet, oder ein normaler String.<br />
Ich hab versucht, das über Stringstreams zu lösen.<br />
Allerdings gelangt aus dem Stringstream in der Schleife nix in den temporären String. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /><br />
Mit Zahlen funktioniert allerdings alles.</p>
<p>Meine Frage nun: Was mache ich hier bloß wieder falsch?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

int main()
{
	std::string myString(&quot;-44 test 410 blubb&quot;);
	std::stringstream myStream;
	int iTmp;
	std::string sTmp;

	myStream&lt;&lt;myString;

  for (int i=0; i&lt;=3; i++)
  {
    if (myStream&gt;&gt;iTmp)
      std::cout&lt;&lt;&quot;[Zahl]: &quot;&lt;&lt;iTmp&lt;&lt;std::endl;
    else if (!myStream.eof())
    {
      myStream&gt;&gt;sTmp;
      std::cout&lt;&lt;&quot;[String]: &quot;&lt;&lt;sTmp&lt;&lt;std::endl;
      std::cout&lt;&lt;&quot;[Length]: &quot;&lt;&lt;sTmp.length()&lt;&lt;std::endl;
    }
  }
	return 0;
}
</code></pre>
<p>Viele Grüße,<br />
Mao</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198567/stringstream-integer-oder-string</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 16:01:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198567.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Nov 2007 20:35:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Thu, 22 Nov 2007 20:35:26 GMT]]></title><description><![CDATA[<p>Hi Community! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich möchte in einem String die einzelnen Teilwörter aufschlüsseln. Dazu muss ich aber auch wissen, ob sich an einer bestimmten Stelle ein Integer befindet, oder ein normaler String.<br />
Ich hab versucht, das über Stringstreams zu lösen.<br />
Allerdings gelangt aus dem Stringstream in der Schleife nix in den temporären String. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /><br />
Mit Zahlen funktioniert allerdings alles.</p>
<p>Meine Frage nun: Was mache ich hier bloß wieder falsch?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

int main()
{
	std::string myString(&quot;-44 test 410 blubb&quot;);
	std::stringstream myStream;
	int iTmp;
	std::string sTmp;

	myStream&lt;&lt;myString;

  for (int i=0; i&lt;=3; i++)
  {
    if (myStream&gt;&gt;iTmp)
      std::cout&lt;&lt;&quot;[Zahl]: &quot;&lt;&lt;iTmp&lt;&lt;std::endl;
    else if (!myStream.eof())
    {
      myStream&gt;&gt;sTmp;
      std::cout&lt;&lt;&quot;[String]: &quot;&lt;&lt;sTmp&lt;&lt;std::endl;
      std::cout&lt;&lt;&quot;[Length]: &quot;&lt;&lt;sTmp.length()&lt;&lt;std::endl;
    }
  }
	return 0;
}
</code></pre>
<p>Viele Grüße,<br />
Mao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408470</guid><dc:creator><![CDATA[Mao]]></dc:creator><pubDate>Thu, 22 Nov 2007 20:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Thu, 22 Nov 2007 20:40:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

int main()
{
    std::stringstream ss(&quot;-44 test 410 blubb&quot;);
    int zahl(0);
    ss &gt;&gt; zahl;
    std::cout &lt;&lt; &quot;Zahl: &quot; &lt;&lt; zahl &lt;&lt; &quot;\n&quot;;
    std::string string;
    ss &gt;&gt; string;
    std::cout &lt;&lt; &quot;String: \&quot;&quot; &lt;&lt; string &lt;&lt; &quot;\&quot; (&quot; &lt;&lt; string.length() &lt;&lt; &quot;)\n&quot;; 
    ss &gt;&gt; zahl;
    std::cout &lt;&lt; &quot;Zahl: &quot; &lt;&lt; zahl &lt;&lt; &quot;\n&quot;;
    ss &gt;&gt; string;
    std::cout &lt;&lt; &quot;String: \&quot;&quot; &lt;&lt; string &lt;&lt; &quot;\&quot; (&quot; &lt;&lt; string.length() &lt;&lt; &quot;)&quot; &lt;&lt; std::endl; 
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408474</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 22 Nov 2007 20:40:35 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Fri, 23 Nov 2007 15:08:02 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Hm, nein. So war das nicht gemeint. <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>Der String war ja nur ein Beispiel, wie es aussehen könnte. Es geht mir ja darum, dass ich erkenne möchte, dass das gerade gelesene eine Zahl ist, oder nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Danke trotzdem.<br />
Mao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408916</guid><dc:creator><![CDATA[Mao]]></dc:creator><pubDate>Fri, 23 Nov 2007 15:08:02 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Fri, 23 Nov 2007 15:10:43 GMT]]></title><description><![CDATA[<p>Naja also du kannst nur hingehen und gucken ob das lesen in einen Integer erfolgreich ist, wenn nicht dann lässt du es in einen String schreiben ... aber kann sein das es was besseres gibt ... frag dazu aber mal lieber Werner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408917</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 23 Nov 2007 15:10:43 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Fri, 23 Nov 2007 15:35:55 GMT]]></title><description><![CDATA[<p>Wenn keine Zahl eingelesen werden konnte, dann wird ein Fehlerflag beim Stream gesetzt, d.h. dieses mußt du dann erst wieder löschen.</p>
<pre><code class="language-cpp">if (myStream&gt;&gt;iTmp)
      std::cout&lt;&lt;&quot;[Zahl]: &quot;&lt;&lt;iTmp&lt;&lt;std::endl;
else
{
  myStream.clear(); // &lt;--
  myStream&gt;&gt;sTmp;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1408937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408937</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 23 Nov 2007 15:35:55 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Fri, 23 Nov 2007 15:42:56 GMT]]></title><description><![CDATA[<p>@(D)Evil:<br />
Ja, so hatt ich das ja auch versucht (siehe ganz oben meinen Code).<br />
Allerdings hab ich das/die Fehlerflag(s) nicht gelöscht, wie Th gesagt hatte.</p>
<p>Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Mao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408940</guid><dc:creator><![CDATA[Mao]]></dc:creator><pubDate>Fri, 23 Nov 2007 15:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Fri, 23 Nov 2007 18:16:00 GMT]]></title><description><![CDATA[<p>Machts doch sauber und schaut vorher mit peek() was kommt und jenachdem in das richtige dann einlesen:</p>
<pre><code class="language-cpp">string str = &quot;&quot;;
int zahl = 0;

if( myStream.peek() != EOF &amp;&amp; isAlpha(myStream.peek()) )
    myStream &gt;&gt; zahl;
else
    myStream &gt;&gt; str;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1409036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1409036</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 23 Nov 2007 18:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Sat, 24 Nov 2007 09:58:52 GMT]]></title><description><![CDATA[<p>KasF: bei IsAlpha(...) eine Zahl einlesen <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>Und dann müßte auch noch auf ein Minuszeichen getestet werden und ob danach dann eine Zahl kommt (und bei Fließkommazahlen evtl. noch auf das Komma bzw. den Punkt)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1409232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1409232</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sat, 24 Nov 2007 09:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Sat, 24 Nov 2007 11:31:26 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>KasF: bei IsAlpha(...) eine Zahl einlesen <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>
</blockquote>
<p>Uuups <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Th schrieb:</p>
<blockquote>
<p>Und dann müßte auch noch auf ein Minuszeichen getestet werden und ob danach dann eine Zahl kommt (und bei Fließkommazahlen evtl. noch auf das Komma bzw. den Punkt)...</p>
</blockquote>
<pre><code class="language-cpp">string str = &quot;&quot;;
int zahl = 0;

int ch = EOF;

if( (ch = myStream.peek()) != EOF &amp;&amp; ( (ch == '-') || isdigit(ch) ) )
    myStream &gt;&gt; zahl;
else if( ch != EOF )
    myStream &gt;&gt; str;
</code></pre>
<p>Wenn Mao nur zwischen Zahlen und Strings unterscheiden will und in seinem Stream alles sauber steht, dann reicht das doch vollkommen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1409267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1409267</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Nov 2007 11:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to Stringstream: Integer oder String? on Sun, 25 Nov 2007 11:43:15 GMT]]></title><description><![CDATA[<p>Hallo! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>(Sorry, dass ich mich nicht gemeldet hatte.)<br />
Ja, sauber ist immer gut. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Danke dafür KasF, Th!</p>
<p>Mao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1409738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1409738</guid><dc:creator><![CDATA[Mao]]></dc:creator><pubDate>Sun, 25 Nov 2007 11:43:15 GMT</pubDate></item></channel></rss>