<?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[Endlosschleife durch falsche Eingabe. - Alternative zu cin?]]></title><description><![CDATA[<p>Ich hab das Spiel &quot;Schiffe Versenken&quot; für die Konsole geschrieben und bin grad dabei einige Bugs zu entfernen.<br />
Meine Menüs habe ich in Schleifen gepackt, die sich solange wiederholen bis eine richtige Auswahl getroffen wird.</p>
<pre><code class="language-cpp">do
{
	cout&lt;&lt;&quot;1 - Spiel starten\n&quot;;
	[...]
	cout&lt;&lt;&quot;6 - Spiel beenden\n&quot;;
	cout&lt;&lt;&quot;Auswahl:&quot;;
	cin&gt;&gt;Auswahl;
	cout&lt;&lt;endl;
	switch (Auswahl)
	{
	case(1):
		{
			Spiel.Spiel_Starten();
		}break;
	[...]
	default:
		{
			cout&lt;&lt;&quot;Falsche Eingabe!\n&quot;;
		}break;
	}//Switch

}while (Auswahl!=6);
</code></pre>
<p>Das Problem ist nur, wenn man ausversehen einen Buchstaben eingibt, verwandelt es sich gleich in eine Endlosschleife.<br />
Ich kann das nicht ganz nachvollziehen, warum ich beim nächsten Schleifendurchlauf keine Möglichkeit mehr habe meine Eingabe zu korrigieren.<br />
Kann ich das vll. vermeiden, in dem ich etwas anderes verwende als cin? Wenn ja - was am besten?<br />
Bin für jede Hilfe dankbar!<br />
Snib</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155194/endlosschleife-durch-falsche-eingabe-alternative-zu-cin</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 04:29:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155194.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Aug 2006 13:16:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Endlosschleife durch falsche Eingabe. - Alternative zu cin? on Thu, 03 Aug 2006 13:18:39 GMT]]></title><description><![CDATA[<p>Ich hab das Spiel &quot;Schiffe Versenken&quot; für die Konsole geschrieben und bin grad dabei einige Bugs zu entfernen.<br />
Meine Menüs habe ich in Schleifen gepackt, die sich solange wiederholen bis eine richtige Auswahl getroffen wird.</p>
<pre><code class="language-cpp">do
{
	cout&lt;&lt;&quot;1 - Spiel starten\n&quot;;
	[...]
	cout&lt;&lt;&quot;6 - Spiel beenden\n&quot;;
	cout&lt;&lt;&quot;Auswahl:&quot;;
	cin&gt;&gt;Auswahl;
	cout&lt;&lt;endl;
	switch (Auswahl)
	{
	case(1):
		{
			Spiel.Spiel_Starten();
		}break;
	[...]
	default:
		{
			cout&lt;&lt;&quot;Falsche Eingabe!\n&quot;;
		}break;
	}//Switch

}while (Auswahl!=6);
</code></pre>
<p>Das Problem ist nur, wenn man ausversehen einen Buchstaben eingibt, verwandelt es sich gleich in eine Endlosschleife.<br />
Ich kann das nicht ganz nachvollziehen, warum ich beim nächsten Schleifendurchlauf keine Möglichkeit mehr habe meine Eingabe zu korrigieren.<br />
Kann ich das vll. vermeiden, in dem ich etwas anderes verwende als cin? Wenn ja - was am besten?<br />
Bin für jede Hilfe dankbar!<br />
Snib</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109914</guid><dc:creator><![CDATA[snib]]></dc:creator><pubDate>Thu, 03 Aug 2006 13:18:39 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife durch falsche Eingabe. - Alternative zu cin? on Thu, 03 Aug 2006 13:43:17 GMT]]></title><description><![CDATA[<p>Es könnte sein, dass nach der Eingabe noch ein EOL (Enter) im Eingabepuffer steckt. Du kannst ja mal vor Ende der while-Schleife ein cin.ignore(); einfügen. Wenn da nicht geht, auch mal das hier versuchen.</p>
<pre><code class="language-cpp">cin.clear();
cin.ignore(cin.rdbuf()-&gt;in_avail());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1109949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109949</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 03 Aug 2006 13:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife durch falsche Eingabe. - Alternative zu cin? on Wed, 16 Aug 2006 03:37:30 GMT]]></title><description><![CDATA[<p>Bei dir wird anscheinend eine Zahl als Eingabe erwartet.<br />
Um auch andere Eingaben abzufangen, muss die Eingabe in einer Variable des Typs 'char' gespeichert werden. Diese kannst du dann, wie in deinem Code schon angedeutet, mit anderen Werten vergleichen, und gegebenenfalls einen default - Wert setzen, der falsche Eingaben abfängt.</p>
<p>Das Problem ist nur, dass in einer Variable des Typs 'char' nur <strong>ein</strong> Zeichen gespeichert wird, das heißt, dass dein Programm bei der Eingabe von 2 oder mehr Zeichen ebenfalls ein ungewolltes Verhalten zeigt... Probiers mal aus <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>Bobby - Karle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109958</guid><dc:creator><![CDATA[Bobby - Karle]]></dc:creator><pubDate>Wed, 16 Aug 2006 03:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife durch falsche Eingabe. - Alternative zu cin? on Thu, 03 Aug 2006 14:26:57 GMT]]></title><description><![CDATA[<p>Wenn du mit cin &gt;&gt; auswahl ein integer lesen willst und einen buchstaben eingibst dann wird bei cin das failbit gesetzt und alle drauffolgenden eingaben scheitern. du kannst das failbit mit cin.clear() wieder löschen.<br />
Kurt</p>
<p>EDIT: Sorry hab die vorherigen posts nicht richtig gelesen. Braunstein hat es schon gesagt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109983</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Thu, 03 Aug 2006 14:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife durch falsche Eingabe. - Alternative zu cin? on Thu, 03 Aug 2006 16:15:54 GMT]]></title><description><![CDATA[<p>Die vorgeschlagene Lösung von Braunstein funktioniert super!<br />
Danke auch an alle anderen.</p>
<p>snib</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110058</guid><dc:creator><![CDATA[snib]]></dc:creator><pubDate>Thu, 03 Aug 2006 16:15:54 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife durch falsche Eingabe. - Alternative zu cin? on Thu, 03 Aug 2006 17:00:05 GMT]]></title><description><![CDATA[<p>Lies dir das mal durch <a href="http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.3" rel="nofollow">http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.3</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110089</guid><dc:creator><![CDATA[Lolz]]></dc:creator><pubDate>Thu, 03 Aug 2006 17:00:05 GMT</pubDate></item></channel></rss>