<?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[Cin stoppt nicht?]]></title><description><![CDATA[<p>Hallo,<br />
wir haben in der Schule ein Programm angefangen, das ganze ist ein ganz simpler &quot;taschenrechner&quot;.</p>
<p>Ich habe soweit auch alles hinbekommen, nur stehe ich im Menü vor einem Problem, welches ich mir nicht erklären kann.<br />
Ich habe ein Menü, bei dem mit Switch eine Rechenart abgefragt wird.<br />
Mit &gt;&gt; Cin frage ich dann die Rechenart ab...<br />
Das ganze ist in einer Schleife, gebe ich nun einen Buchstaben ein... zum Beispiel a oder f... dann wird das Programm in einer Endlosschleife neugestartet...</p>
<p>Hier einmal die Funktion, vielleicht weiß ja einer wo der Fehler steckt...</p>
<pre><code>void auswahl ()
{
		int wahl;

	do
	{

		begruessung();

		cout &lt;&lt; &quot;Was moechten Sie tuen?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;1. Multiplizieren&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;2. Dividieren&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;3. Addieren&quot; &lt;&lt;endl;
		cout &lt;&lt; &quot;4. Subrahieren&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Auswahl: &quot;;
		fflush(stdin);
		cin &gt;&gt; wahl;
		fflush(stdin);

		switch (wahl)
		{
		case 1: multiplikation(); break;
		case 2: division(); break;
	    case 3: addition(); break;
		case 4: subtraktion(); break;
		default: cout &lt;&lt; &quot;Bitte einen Wert zwischen 1 und 4 eingeben!&quot;;break;
		}

		system(&quot;cls&quot;);

	}while(wahl != 1 || wahl !=2 || wahl !=3 || wahl!=4);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/226725/cin-stoppt-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:50:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/226725.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Nov 2008 09:42:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Cin stoppt nicht? on Wed, 05 Nov 2008 09:42:51 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wir haben in der Schule ein Programm angefangen, das ganze ist ein ganz simpler &quot;taschenrechner&quot;.</p>
<p>Ich habe soweit auch alles hinbekommen, nur stehe ich im Menü vor einem Problem, welches ich mir nicht erklären kann.<br />
Ich habe ein Menü, bei dem mit Switch eine Rechenart abgefragt wird.<br />
Mit &gt;&gt; Cin frage ich dann die Rechenart ab...<br />
Das ganze ist in einer Schleife, gebe ich nun einen Buchstaben ein... zum Beispiel a oder f... dann wird das Programm in einer Endlosschleife neugestartet...</p>
<p>Hier einmal die Funktion, vielleicht weiß ja einer wo der Fehler steckt...</p>
<pre><code>void auswahl ()
{
		int wahl;

	do
	{

		begruessung();

		cout &lt;&lt; &quot;Was moechten Sie tuen?&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;1. Multiplizieren&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;2. Dividieren&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;3. Addieren&quot; &lt;&lt;endl;
		cout &lt;&lt; &quot;4. Subrahieren&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Auswahl: &quot;;
		fflush(stdin);
		cin &gt;&gt; wahl;
		fflush(stdin);

		switch (wahl)
		{
		case 1: multiplikation(); break;
		case 2: division(); break;
	    case 3: addition(); break;
		case 4: subtraktion(); break;
		default: cout &lt;&lt; &quot;Bitte einen Wert zwischen 1 und 4 eingeben!&quot;;break;
		}

		system(&quot;cls&quot;);

	}while(wahl != 1 || wahl !=2 || wahl !=3 || wahl!=4);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1610439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1610439</guid><dc:creator><![CDATA[sea-kay]]></dc:creator><pubDate>Wed, 05 Nov 2008 09:42:51 GMT</pubDate></item><item><title><![CDATA[Reply to Cin stoppt nicht? on Wed, 05 Nov 2008 09:54:14 GMT]]></title><description><![CDATA[<p>sea-kay schrieb:</p>
<blockquote>
<p>Das ganze ist in einer Schleife, gebe ich nun einen Buchstaben ein... zum Beispiel a oder f... dann wird das Programm in einer Endlosschleife neugestartet...</p>
<p>Hier einmal die Funktion, vielleicht weiß ja einer wo der Fehler steckt...</p>
</blockquote>
<p>Du solltest auch das fail-bit von cout prüfen und ggf. zurücksetzen (Dies wird z.B. gesetzt wenn die Eingabe nicht dem erwarteten Typ entspricht)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1610448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1610448</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 05 Nov 2008 09:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Cin stoppt nicht? on Wed, 05 Nov 2008 09:59:05 GMT]]></title><description><![CDATA[<p>Man kanns nicht oft genug wiederholen:<br />
flush ist nur für Outputstreams definiert. Bei Inputstreams produziert man sich undefiniertes Verhalten. Mal davon abgesehen ist fflush(stdin) auch C.<br />
So gehts besser:</p>
<pre><code class="language-cpp">if( !(std::cin &gt;&gt; wahl) )
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1610452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1610452</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 05 Nov 2008 09:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to Cin stoppt nicht? on Wed, 05 Nov 2008 12:17:41 GMT]]></title><description><![CDATA[<p>Und vielleicht sollte man noch den Fehler erwähnen <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>
<pre><code class="language-cpp">int i;
char c;
std::cin &gt;&gt; i; // Es wird erwartet, dass eine Zahl eingegeben wird.
               // Wenn zum Beispiel ein Buchstabe kommt -&gt; Fehler.
std::cin &gt;&gt; c; // Erwartet ein Buchstabe, also 'a' oder 'f' würde kein Fehler auslösen.
</code></pre>
<p>Wenn bei <code>std::cin</code> , bzw. einem <code>std::ostream</code> oder <code>std::istream</code> ein Fehler passiert. Dann wird ein Fehlerbit gesetzt und jegliche Ein-/Ausgabe unterbunden und übersprungen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1610568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1610568</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 05 Nov 2008 12:17:41 GMT</pubDate></item></channel></rss>