<?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[Fehler wenn was anderes als eine Zahl eingegeben wird]]></title><description><![CDATA[<p>Folgendes Programm &quot;stürzt ab&quot;, wenn ich was anderes als ne Zahl eingebe, wie kann man das abfangen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
  char name[11];
  int alter;

  std::cout &lt;&lt; &quot;Bitte Namen eingeben: &quot;;
  std::cin &gt;&gt; setw(11) &gt;&gt; name;
  std::cout &lt;&lt; '\n' &lt;&lt; name &lt;&lt; &quot; bitte geben sie das Alter ein: &quot;;
  std::cin &gt;&gt; alter;
  std::cout &lt;&lt; &quot;\nZusammenfassung:\n\tName: &quot; &lt;&lt; name &lt;&lt; &quot;\tAlter: &quot; &lt;&lt; alter;
}
</code></pre>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145090/fehler-wenn-was-anderes-als-eine-zahl-eingegeben-wird</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 20:39:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145090.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Apr 2006 18:31:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Mon, 24 Apr 2006 18:31:24 GMT]]></title><description><![CDATA[<p>Folgendes Programm &quot;stürzt ab&quot;, wenn ich was anderes als ne Zahl eingebe, wie kann man das abfangen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
  char name[11];
  int alter;

  std::cout &lt;&lt; &quot;Bitte Namen eingeben: &quot;;
  std::cin &gt;&gt; setw(11) &gt;&gt; name;
  std::cout &lt;&lt; '\n' &lt;&lt; name &lt;&lt; &quot; bitte geben sie das Alter ein: &quot;;
  std::cin &gt;&gt; alter;
  std::cout &lt;&lt; &quot;\nZusammenfassung:\n\tName: &quot; &lt;&lt; name &lt;&lt; &quot;\tAlter: &quot; &lt;&lt; alter;
}
</code></pre>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044341</guid><dc:creator><![CDATA[Tom D.]]></dc:creator><pubDate>Mon, 24 Apr 2006 18:31:24 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Mon, 24 Apr 2006 18:32:58 GMT]]></title><description><![CDATA[<p>Hier ein Besipielprogramm das sowas abfängt</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
using namespace std;

int main() {

   int zahl = 1;
   int summe = 0;

   EINGABE:
   try {
      while(zahl != 0) {
         cin &gt;&gt; zahl;
         if(!cin.good())
            throw 1;
         summe += zahl;
      }
   }

   catch(int x) {
      cin.clear();
      cin.ignore( 20, '\n' );
      goto EINGABE;
   }
   cout &lt;&lt; summe &lt;&lt; endl;
   return 0;
}
</code></pre>
<p>Das hatte ich noch rumliegen, soll eigentlich die Wirkungsweise von goto demonstrieren. Ist aber das was du scuhst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044342</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Mon, 24 Apr 2006 18:32:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Mon, 24 Apr 2006 18:49:17 GMT]]></title><description><![CDATA[<p>Ich hab das ganze mal so geändert, aber irgendwie funktionierts so nicht</p>
<pre><code class="language-cpp">int main()
{
  char name[11];
  int alter;

  std::cout &lt;&lt; &quot;Bitte Namen eingeben: &quot;;
  std::cin &gt;&gt; setw(11) &gt;&gt; name;
EINGABE:
  std::cout &lt;&lt; '\n' &lt;&lt; name &lt;&lt; &quot; bitte geben sie das Alter ein: &quot;;
  std::cin &gt;&gt; alter;
  if(std::cin.good())
     std::cout &lt;&lt; &quot;\nZusammenfassung:\n\tName: &quot; &lt;&lt; name &lt;&lt; &quot;\tAlter: &quot; &lt;&lt; alter;
  else
  {
     std::cout &lt;&lt; &quot;Ungültige Eingabe.\n&quot;;
     goto EINGABE;
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1044364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044364</guid><dc:creator><![CDATA[Tom D.]]></dc:creator><pubDate>Mon, 24 Apr 2006 18:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Mon, 24 Apr 2006 19:17:11 GMT]]></title><description><![CDATA[<p>Die funktion try()<br />
catch() ist in diesem Falle wohl das Wichtige an dem geposteten Beispielcode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044398</guid><dc:creator><![CDATA[Platy]]></dc:creator><pubDate>Mon, 24 Apr 2006 19:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Mon, 24 Apr 2006 19:48:30 GMT]]></title><description><![CDATA[<p>Forumsuche benutzen, oder einfach mal alle Threads auf der Seite durchlesen.<br />
Da findet man weit unten: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-144634.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-144634.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044416</guid><dc:creator><![CDATA[Christoph K.]]></dc:creator><pubDate>Mon, 24 Apr 2006 19:48:30 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Mon, 24 Apr 2006 19:48:20 GMT]]></title><description><![CDATA[<p>Das du musst das catch noch implementieren.<br />
Das ist der wichtige code, der sorgt nämlich dafür das cin wieder funktioniert und die ungültige eingabe gelöscht wird.</p>
<p>Informier dich am besten mal über try,throw und catch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044421</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Mon, 24 Apr 2006 19:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Tue, 25 Apr 2006 06:36:05 GMT]]></title><description><![CDATA[<p>Also das try/goto-Beispiel sieht ja grauenhaft aus - da ist es doch besser, den Stream-Status direkt abzufragen (und while ist eleganter als goto ;))</p>
<p>PS: Wenn du unbedingt mit Exceptions arbeiten willst:</p>
<pre><code class="language-cpp">cin.exceptions(ios::failbit|ios::badbit);

try
{
  cin&gt;&gt;alter;
}
catch(ios::failure&amp; e)
{
  //Fehlerbehandlung
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1044577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044577</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Apr 2006 06:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler wenn was anderes als eine Zahl eingegeben wird on Tue, 25 Apr 2006 09:04:06 GMT]]></title><description><![CDATA[<p>Das setzen von der Exception-Maske kann auch ne Exception auslösen (wenn eines der Fehlerbits gesetzt ist), daher sollte man das so machen:</p>
<pre><code class="language-cpp">try
{
   cout.exception(ios::failbit|ios::badbit);
}
catch(ios::failure&amp; e)
{
  //Fehlerbehandlung
}

try
{
  cin&gt;&gt;alter;
}
catch(ios::failure&amp; e) //Man sollte hier beachten, dass nicht nur ios::failure-exceptions hier auftreten können
{
  //Fehlerbehandlung
}
</code></pre>
<p>oder vor dem setzen der Exception-Maske mit good() prüfen ob der Stream in Ordnung ist (und ggf. Maßnahmen treffen und dann clear() aufrufen)</p>
<p>Wenn man keine anderen Exceptions wie die vom Stream fangen möchte, kann man auch folgendes machen:</p>
<pre><code class="language-cpp">cin &gt;&gt; alter;
//viele weitere Operationen
try
{
  cin.exception(ios::failbit|ios::badbit);
}
catch(ios::failure&amp; e)
{
  //Fehlerbehandlung
}
</code></pre>
<p>Aber wie gesagt, damit kann man wirklich nur die Stream-Fehlerzustände fangen und keine anderen Exceptions</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044652</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Tue, 25 Apr 2006 09:04:06 GMT</pubDate></item></channel></rss>