<?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[Exception Handling Buchstaben rausfiltern]]></title><description><![CDATA[<p>Hi, ich bin erst seid ein paar Stunden im c++ Bereich und muss mir alles selber beibringen, also seid bitte nicht so streng für die evtl. blöde Frage.<br />
Habe mir den (überings sehr gut geschriebenen) Artikel über Exception Handling hier im Board angeguckt, und wollte diese Hilfe auf mein Programm anwenden.</p>
<p>Erstmal soviel: Das Programm soll eine Eingabe überprüfen, ist sie ein Buchstabe soll nur ein Fehler ausgegeben werden, ansonsten die Zahl.</p>
<p>Nun habe ich das ganze soweit, aber wenn ich einen Buchstaben eingebe wird trotzdem eine Zahl ausgegeben, woran liegt das?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;cstdlib&gt;
using namespace std;

double AufgabeEingeben()    
{
    int aufgabe;
    cin &gt;&gt; aufgabe;
    if(isdigit(aufgabe))   
    {
       throw int();
   }
   return aufgabe;
}

int main()    
{
    int Result;
    try    
    {
        Result = AufgabeEingeben();
        cout &lt;&lt; Result &lt;&lt; endl;
    }    catch(int &amp;Exception)    
    {
        cout &lt;&lt; &quot;fail&quot; &lt;&lt; endl;
    }
    system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Wie gesagt kenn mich nicht aus, aber das isDigit funktioniert eig. z.B. hierdrin funztts so wie es soll:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;cstdlib&gt;
using namespace std;

int main()    
{
    int aufgabe;
    cin &gt;&gt; aufgabe;
    if(isdigit(aufgabe))   
    {
       cout &lt;&lt; &quot;fail&quot;;
   }
   else cout &lt;&lt; aufgabe;
    system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Soweit erstmal, vielen Dank für eure Hilfe, mfg, Tobi-DS</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256748/exception-handling-buchstaben-rausfiltern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 04:39:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256748.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Dec 2009 10:49:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exception Handling Buchstaben rausfiltern on Thu, 17 Dec 2009 10:49:15 GMT]]></title><description><![CDATA[<p>Hi, ich bin erst seid ein paar Stunden im c++ Bereich und muss mir alles selber beibringen, also seid bitte nicht so streng für die evtl. blöde Frage.<br />
Habe mir den (überings sehr gut geschriebenen) Artikel über Exception Handling hier im Board angeguckt, und wollte diese Hilfe auf mein Programm anwenden.</p>
<p>Erstmal soviel: Das Programm soll eine Eingabe überprüfen, ist sie ein Buchstabe soll nur ein Fehler ausgegeben werden, ansonsten die Zahl.</p>
<p>Nun habe ich das ganze soweit, aber wenn ich einen Buchstaben eingebe wird trotzdem eine Zahl ausgegeben, woran liegt das?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;cstdlib&gt;
using namespace std;

double AufgabeEingeben()    
{
    int aufgabe;
    cin &gt;&gt; aufgabe;
    if(isdigit(aufgabe))   
    {
       throw int();
   }
   return aufgabe;
}

int main()    
{
    int Result;
    try    
    {
        Result = AufgabeEingeben();
        cout &lt;&lt; Result &lt;&lt; endl;
    }    catch(int &amp;Exception)    
    {
        cout &lt;&lt; &quot;fail&quot; &lt;&lt; endl;
    }
    system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Wie gesagt kenn mich nicht aus, aber das isDigit funktioniert eig. z.B. hierdrin funztts so wie es soll:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;cstdlib&gt;
using namespace std;

int main()    
{
    int aufgabe;
    cin &gt;&gt; aufgabe;
    if(isdigit(aufgabe))   
    {
       cout &lt;&lt; &quot;fail&quot;;
   }
   else cout &lt;&lt; aufgabe;
    system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Soweit erstmal, vielen Dank für eure Hilfe, mfg, Tobi-DS</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1823891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1823891</guid><dc:creator><![CDATA[Tobi-DS]]></dc:creator><pubDate>Thu, 17 Dec 2009 10:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handling Buchstaben rausfiltern on Thu, 17 Dec 2009 18:04:59 GMT]]></title><description><![CDATA[<p>Das liegt vermutlich daran, dass die Variable aufgabe ein int(GanzZAHL) ist. Nimm char(Zeichen)!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824097</guid><dc:creator><![CDATA[Oberon00]]></dc:creator><pubDate>Thu, 17 Dec 2009 18:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handling Buchstaben rausfiltern on Thu, 17 Dec 2009 21:58:38 GMT]]></title><description><![CDATA[<p>Oberon00 schrieb:</p>
<blockquote>
<p>Das liegt vermutlich daran, dass die Variable aufgabe ein int(GanzZAHL) ist. Nimm char(Zeichen)!</p>
</blockquote>
<p>By Chars werden immer Buchstaben erkannt, außerdem liegt es nicht an den Strings, siehe mein 2. Code, der vollständiog funktioniert.<br />
Nur in Verbindung mit dem Exception Handling halt nicht <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="😉"
    /></p>
<p>Bitte nach wie vor um Hilfe, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824244</guid><dc:creator><![CDATA[Tobi-DS]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:58:38 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handling Buchstaben rausfiltern on Thu, 17 Dec 2009 22:17:52 GMT]]></title><description><![CDATA[<p>Tobi-DS schrieb:</p>
<blockquote>
<p>Oberon00 schrieb:</p>
<blockquote>
<p>Das liegt vermutlich daran, dass die Variable aufgabe ein int(GanzZAHL) ist. Nimm char(Zeichen)!</p>
</blockquote>
<p>By Chars werden immer Buchstaben erkannt, außerdem liegt es nicht an den Strings, siehe mein 2. Code, der vollständiog funktioniert.<br />
Nur in Verbindung mit dem Exception Handling halt nicht <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="😉"
    /></p>
</blockquote>
<p>Doch, genau das ist das. Mit char funktioniert das ganz wunderbar. Das es bei deinem zweiten Code funktioniert, liegt an einem anderen Fehler deinerseits, der dann zufällig auf das richtige Verhalten führt. Dort hat aufgabe nämlich einfach einen zufälligen Wert wenn ein Buchstabe eingegeben wird, weil der stream dem int keinen Buchstaben zuweisen kann. Daher meint dann isdigit, dass es sich nicht um eine Zahl handelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824247</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 17 Dec 2009 22:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handling Buchstaben rausfiltern on Thu, 17 Dec 2009 23:05:12 GMT]]></title><description><![CDATA[<p>du solltest dir ganz schnell abgewöhnen integers zu werfen.<br />
wird std::exception oder noch besser std::runtime_error oder davon abgeleitete klassen.<br />
und fang sie mit &quot;catch (std::exception const&amp; e)&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824265</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 17 Dec 2009 23:05:12 GMT</pubDate></item></channel></rss>