<?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[vollständige string -&amp;gt; int&#x2F;double Konvertierung]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie löse ich am besten folgendes Problem: Ich habe einen String und möchte ihn nach int/double konvertieren. Dabei müssen alle Zeichen des Strings berücksichtigt werden, sodass der komplette String entweder eine gültige Zahl darstellt oder nicht. Die C++/C Methode parsen nur bis zum ersten ungültigen Zeichen, damit ist mir leider nicht geholfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253582/vollständige-string-gt-int-double-konvertierung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 14:25:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253582.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Nov 2009 12:25:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Wed, 04 Nov 2009 12:25:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie löse ich am besten folgendes Problem: Ich habe einen String und möchte ihn nach int/double konvertieren. Dabei müssen alle Zeichen des Strings berücksichtigt werden, sodass der komplette String entweder eine gültige Zahl darstellt oder nicht. Die C++/C Methode parsen nur bis zum ersten ungültigen Zeichen, damit ist mir leider nicht geholfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803136</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 04 Nov 2009 12:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Wed, 04 Nov 2009 12:30:31 GMT]]></title><description><![CDATA[<p>Schau bitte in die FAQ, Thread &quot;einmal zahl nach string und zurück&quot;. Tip: wenn nach dem auslesen der zahl aus dem stringstream noch was drinsteht konnte es offenbar nicht komplett als Zahl geparst werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803140</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 04 Nov 2009 12:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Wed, 04 Nov 2009 12:56:31 GMT]]></title><description><![CDATA[<p>Danke pumuckl, Asche über mein Haupt. Ich habe ein paar Versuche unternommen um die Anzahl der noch im Stream befindlichen Zeichen zu bekommen, aber gegen eof() zu prüfen ist mir nicht eingefallen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803153</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 04 Nov 2009 12:56:31 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Wed, 04 Nov 2009 14:40:30 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Ich habe ein paar Versuche unternommen um die Anzahl der noch im Stream befindlichen Zeichen zu bekommen</p>
</blockquote>
<p>Wäre auch mein Ansatz, imo zumindest besser als gegen eof() zu testen.</p>
<pre><code class="language-cpp">std::string maybeanumber;
/* ... */
int i;
std::stringstream stream(maybeanumber);
stream &gt;&gt; i;

bool itwasanumber = !stream.fail() &amp;&amp; (stream.str().size() == 0);
</code></pre>
<p>tut nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803241</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 04 Nov 2009 14:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Wed, 04 Nov 2009 15:59:20 GMT]]></title><description><![CDATA[<p>Nein, das hab ich schon probiert. Bei mir kommt bei folgendem Code 6 für x und 123 für i raus:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;stringstream&gt;

using namespace std;

int main()
{
   stringstream ss( &quot;123abc&quot; );
   int i;

   ss &gt;&gt; i;

   unsigned int x = ss.str().length();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803325</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 04 Nov 2009 15:59:20 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Wed, 04 Nov 2009 17:49:05 GMT]]></title><description><![CDATA[<p>Ich weiß nicht, warum es immer ein stringstream sein muss:</p>
<pre><code class="language-cpp">std::string numberOrNot;

// ...

char *endptr = 0;
long number = std::strtol(numberOrNot.c_str(), &amp;endptr, 0);
if(*endptr) std::cout &lt;&lt; &quot;Nicht als Zahl auswertbar: &quot; &lt;&lt; endptr &lt;&lt; std::endl;
</code></pre>
<p>Das ist um Größenordnungen schneller als stringstream, und endptr zeigt am Ende genau auf den Teil des Strings, der nicht als Zahl auswertbar ist. Find' ich am wenigsten umständlich...</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803383</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Wed, 04 Nov 2009 17:49:05 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Thu, 05 Nov 2009 08:30:45 GMT]]></title><description><![CDATA[<p>Danke für den Vorschlag, aber der Vorteil von stringstream ist, dass ich alles mit einer template Funktion erschlagen kann:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T parse_token( const std::string&amp; Token )
{
   std::stringstream ss( Token );

   T value;

   ss &gt;&gt; value;
   if( false == ss.eof() )
   {
      throw std::invalid_argument( &quot;Conversion error&quot; );
   }
   return value;
}
</code></pre>
<p>Damit brauche ich für int/double/bool nur eine Funktion statt drei. Die Ausführungsgeschwindigkeit ist nicht wichtig, da ich nur ein Mal beim Programmstart die Kommandozeile parsen muss, da kann der Benutzer ruhig mal ein paar Nanosekunden warten. boost::program_options kann mein Compiler leider nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803607</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 05 Nov 2009 08:30:45 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Thu, 05 Nov 2009 09:10:18 GMT]]></title><description><![CDATA[<p>klingt gut, und wie benutze ich das?</p>
<pre><code class="language-cpp">double dnum = parse_token ( &quot;3E-1&quot; );
</code></pre>
<blockquote>
<p>error C2783: &quot;T parse_token(std::string &amp;)&quot;: template-Argument für &quot;T&quot; konnte nicht hergeleitet werden.<br />
1&gt; ...main.cpp(7): Siehe Deklaration von 'parse_token'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1803632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803632</guid><dc:creator><![CDATA[template n00b]]></dc:creator><pubDate>Thu, 05 Nov 2009 09:10:18 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Thu, 05 Nov 2009 09:23:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">double dnum = parse_token&lt;double&gt; ( &quot;3E-1&quot; );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803641</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 05 Nov 2009 09:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to vollständige string -&amp;gt; int&#x2F;double Konvertierung on Thu, 05 Nov 2009 12:02:07 GMT]]></title><description><![CDATA[<p>Ich mache das sehr ähnlich für einfache ini Files.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803755</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 05 Nov 2009 12:02:07 GMT</pubDate></item></channel></rss>