<?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[const char* auf inhalt überprüfen]]></title><description><![CDATA[<p>Hallo an Alle,</p>
<p>ich möchte gerne folgende 0peration durchführen:</p>
<pre><code class="language-cpp">const char *buf;
int zahl;

// ... Funktion zum einlesen von *buf ...

zahl = (int) atof(buf);
</code></pre>
<p>Nun muss ich zuvor noch überprüfen, was in 'buf' drin ist, ehe ich es an 'zahl' gebe, die bewusst eine Integerzahl ist, da in 'buf' nur Integerzahlen erlaubt sein sollten.<br />
Wenn 'buf' aber zum Beispiel so etwas wie '4 2', '1.1' oder 'a' ist, will ich eine Fehlermeldung ausgeben. Wie kann ich das anstellen?</p>
<p>VIELEN DANK!<br />
H.W.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163924/const-char-auf-inhalt-überprüfen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 12:37:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163924.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Nov 2006 08:04:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const char* auf inhalt überprüfen on Fri, 03 Nov 2006 08:04:35 GMT]]></title><description><![CDATA[<p>Hallo an Alle,</p>
<p>ich möchte gerne folgende 0peration durchführen:</p>
<pre><code class="language-cpp">const char *buf;
int zahl;

// ... Funktion zum einlesen von *buf ...

zahl = (int) atof(buf);
</code></pre>
<p>Nun muss ich zuvor noch überprüfen, was in 'buf' drin ist, ehe ich es an 'zahl' gebe, die bewusst eine Integerzahl ist, da in 'buf' nur Integerzahlen erlaubt sein sollten.<br />
Wenn 'buf' aber zum Beispiel so etwas wie '4 2', '1.1' oder 'a' ist, will ich eine Fehlermeldung ausgeben. Wie kann ich das anstellen?</p>
<p>VIELEN DANK!<br />
H.W.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167447</guid><dc:creator><![CDATA[Hans Wurst]]></dc:creator><pubDate>Fri, 03 Nov 2006 08:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to const char* auf inhalt überprüfen on Fri, 03 Nov 2006 08:14:05 GMT]]></title><description><![CDATA[<p>Nimm doch einfach <em>atoi</em> statt <em>atof</em>.<br />
Wenn du mit der Validierung nicht klar kommst schau in die Doku zur Funktion.<br />
Falls du im richtigen Forum (C++) gepostet hast, schau in die FAQ, &quot;Einmal String nach Zahl und zurück&quot; oder so ähnlich, (und überleg dir ob <em>char const</em>* nicht ein 'Fehler' ist der durch <em>std::string</em> behoben werden könnte).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167454</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 03 Nov 2006 08:14:05 GMT</pubDate></item><item><title><![CDATA[Reply to const char* auf inhalt überprüfen on Fri, 03 Nov 2006 08:16:40 GMT]]></title><description><![CDATA[<p>Erstmal gibt es auch die Funktion &quot;atoi()&quot;, um int's zu parsen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> (das ist vermutlich besser, als nach float-Werten zu scannen und die dann umzuwandeln)</p>
<p>Zweitens gibt es dazu noch die &quot;Komplettversion&quot; strtol(), die als Bonus noch zurückgeben kann, wo die erkannte Zahl zu Ende war:</p>
<pre><code class="language-cpp">const char* buf;
char* ende;
int zahl = strtol(buf,&amp;ende,10);
if(*ende!='\0')
  cout&lt;&lt;&quot;Fehler: \'&quot;&lt;&lt;buf&lt;&lt;&quot;\' ist keine Zahl&quot;;
</code></pre>
<p>Und drittens: Nimm lieber Stringstreams oder lexical_cast&lt;&gt; für die Umwandlung (beim Stream kannst du hinterher per get() abfragen, ob noch etwas hinter der Zahl stand).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167457</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Nov 2006 08:16:40 GMT</pubDate></item><item><title><![CDATA[Reply to const char* auf inhalt überprüfen on Fri, 03 Nov 2006 08:22:45 GMT]]></title><description><![CDATA[<p>Danke für den Hinweis finix,</p>
<p>nee, char const* ist leider kein Fehler. Meine Funktion zum einlesen von 'buf 'ist aus einer library und die möchte ich nicht modifizieren.</p>
<p>Bye.<br />
H.W.</p>
<p>// EDIT:<br />
an CStoll: Dein Vorschlag mit strtol funktioniert 'einmanfrei'. Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167461</guid><dc:creator><![CDATA[Hans Wurst]]></dc:creator><pubDate>Fri, 03 Nov 2006 08:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to const char* auf inhalt überprüfen on Fri, 03 Nov 2006 09:05:43 GMT]]></title><description><![CDATA[<p>wenn performance ned so wichtig ist (Eingabe ?):</p>
<p>std::string myBuffer(buf ? buf : std::string()); // kopiert dir deine zeichenkete in den string .... und faengt nullzeiger ab</p>
<p>und scho kannst mit strings arbeiten ^^</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167495</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Fri, 03 Nov 2006 09:05:43 GMT</pubDate></item><item><title><![CDATA[Reply to const char* auf inhalt überprüfen on Fri, 03 Nov 2006 12:31:49 GMT]]></title><description><![CDATA[<p>Falls du die boost libs verwendest, wuerde ich dir die lexical casts empfehlen.</p>
<p>- georg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167645</guid><dc:creator><![CDATA[GeorgV]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:31:49 GMT</pubDate></item></channel></rss>