<?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[string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl]]></title><description><![CDATA[<p>Wie könnte ich es hinkriegen, das die Konvertierung fehlschlägt, wenn ein String mit negativer Zahl eingegeben wird?</p>
<pre><code>std::string inputString = &quot;-5&quot;;
std::stringstream ss(inputString);
std::size_t outputValue;

if(ss &gt;&gt; outputValue)
{
	std::cout &lt;&lt; &quot;ok\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/315975/string-to-size_t-mit-stringstream-schlägt-bei-string-mit-negativer-zahl-nicht-fehl</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 11:50:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315975.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Apr 2013 19:32:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 19:32:45 GMT]]></title><description><![CDATA[<p>Wie könnte ich es hinkriegen, das die Konvertierung fehlschlägt, wenn ein String mit negativer Zahl eingegeben wird?</p>
<pre><code>std::string inputString = &quot;-5&quot;;
std::stringstream ss(inputString);
std::size_t outputValue;

if(ss &gt;&gt; outputValue)
{
	std::cout &lt;&lt; &quot;ok\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2316328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316328</guid><dc:creator><![CDATA[popmen]]></dc:creator><pubDate>Wed, 17 Apr 2013 19:32:45 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 19:41:38 GMT]]></title><description><![CDATA[<p>Nimm struol. (Wobei das wieder errno nutzt. Auch doof. Tja...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316329</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 17 Apr 2013 19:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 19:43:59 GMT]]></title><description><![CDATA[<p>popmen schrieb:</p>
<blockquote>
<p>Wie könnte ich es hinkriegen, das die Konvertierung fehlschlägt, wenn ein String mit negativer Zahl eingegeben wird?</p>
<pre><code>std::string inputString = &quot;-5&quot;;
std::stringstream ss(inputString);
std::size_t outputValue;

if(ss &gt;&gt; outputValue)
{
	std::cout &lt;&lt; &quot;ok\n&quot;;
}
</code></pre>
</blockquote>
<p>Joa, schlägt nicht fehl, weil unsigned under/overflow wohl definiert ist. Wie man das nun elegant löst, weiß ich gerade auch nicht, warten wir mal, was die anderen sagen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2316330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316330</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 17 Apr 2013 19:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 20:39:16 GMT]]></title><description><![CDATA[<p>Du könntest das erste Zeichen peek()en. Ansonsten würde ich das als Feature ansehen, nicht als Bug.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316340</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 17 Apr 2013 20:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 21:09:55 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Nimm <s>struol</s>strtoul.</p>
</blockquote>
<p>lol. Das macht genau das gleiche.</p>
<p>out schrieb:</p>
<blockquote>
<p>Joa, schlägt nicht fehl, weil unsigned under/overflow wohl definiert ist.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Genau so läuft das.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Du könntest das erste Zeichen peek()en.</p>
</blockquote>
<p>Lol, erst Whitespaces skippen.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ansonsten würde ich das als Feature ansehen, nicht als Bug.</p>
</blockquote>
<p>Ich würde das als Bug im Standard ansehen, wüsste nicht, inwiefern das sinnvoll sein sollte.</p>
<p>Ein besser Workaround wäre, eine entsprechende Locale selber zu schreiben, die dann failt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316350</guid><dc:creator><![CDATA[lolboy]]></dc:creator><pubDate>Wed, 17 Apr 2013 21:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 21:15:10 GMT]]></title><description><![CDATA[<p>Warum willst du gleich size_t nehmen? Was spricht denn gegen eine Variable mit Vorzeichen als Zwischenschritt?</p>
<pre><code>std::string inputString = &quot;-5&quot;;
    std::stringstream ss(inputString);
    std::size_t outputValue;
    long temp;  //ggf. was Größeres falls long zu klein

    if(ss &gt;&gt; temp &amp;&amp; temp &gt;= 0)
        outputValue = temp;  //ok
    else
        std::cout &lt;&lt; &quot;fehlgeschlagen!\n&quot;;
</code></pre>
<p>Oder habe ich dein Vorhaben falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316351</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Wed, 17 Apr 2013 21:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 22:06:09 GMT]]></title><description><![CDATA[<p>Danke Leute ich habe mich jetzt für eine Lösung entschieden wo ich zuerst prüfe ob der String nur Digits containiert. Find ich irgendwie geiler als prüfen auf &quot;-&quot;.</p>
<p>Rewind: Bei deiner Lösung funzen nicht alle legalen Werte von std::size_t. Dann muss man schon wieder in long long einlesen. Ne lieber nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316363</guid><dc:creator><![CDATA[popmen]]></dc:creator><pubDate>Wed, 17 Apr 2013 22:06:09 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 22:17:49 GMT]]></title><description><![CDATA[<p>popmen schrieb:</p>
<blockquote>
<p>Danke Leute ich habe mich jetzt für eine Lösung entschieden wo ich zuerst prüfe ob der String nur Digits containiert. Find ich irgendwie geiler als prüfen auf &quot;-&quot;.</p>
</blockquote>
<p>Wenn der Nutzer aber &quot;0xFF&quot; statt &quot;255&quot; schreiben möchte? Oder &quot;+123&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316368</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 17 Apr 2013 22:17:49 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 22:27:19 GMT]]></title><description><![CDATA[<p>In meinem Fall handelt es sich um das Parsen nach einem definierten Protokoll - keine Benutzereingabe. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2316372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316372</guid><dc:creator><![CDATA[popmen]]></dc:creator><pubDate>Wed, 17 Apr 2013 22:27:19 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Wed, 17 Apr 2013 22:44:03 GMT]]></title><description><![CDATA[<p>lolboy schrieb:</p>
<blockquote>
<p>lol. Das macht genau das gleiche.</p>
</blockquote>
<p>Stimmt. Man könnte denken, das gäbe einen Fehler, tut's aber nicht.</p>
<p>lolboy schrieb:</p>
<blockquote>
<p>Ich würde das als Bug im Standard ansehen, wüsste nicht, inwiefern das sinnvoll sein sollte.</p>
</blockquote>
<p>+1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316375</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 17 Apr 2013 22:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to string to size_t mit stringstream schlägt bei string mit negativer Zahl nicht fehl on Thu, 18 Apr 2013 06:58:39 GMT]]></title><description><![CDATA[<p>popmen schrieb:</p>
<blockquote>
<p>In meinem Fall handelt es sich um das Parsen nach einem definierten Protokoll - keine Benutzereingabe. <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>
</blockquote>
<p>Aber das Protokoll kann versehentlich negative Zahlen enthalten?</p>
<p>Oder mal direkt gefragt: Du hast eine ganz klar definierte Bedingung &quot;kein Minuszeichen als erster non-Whitespace&quot;, wieso machst du daraus ohne Not die <strong>nicht</strong> äquivalente Bedingung &quot;enthält nur Ziffern&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2316403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2316403</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 18 Apr 2013 06:58:39 GMT</pubDate></item></channel></rss>