<?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[std::cin wird in while() übersprungen?]]></title><description><![CDATA[<p>Hey,<br />
ich habe ein kleines Problem. Ich nehme in meinem Programm eine Eingabe mit std::cin entgegen. Damit der Prozess wiederholt wird wenn der Benutzer eine falsche Eingabe tätigt habe ich das Ganze in eine while()-Schleife gesteckt.</p>
<pre><code class="language-cpp">void selectWord(){
	int input;
	bool doInput = true;
	cout &lt;&lt; &quot;Bitte wählen sie eine Zahl von 0-5: &quot;;
	while(doInput){
		if(!(cin &gt;&gt; input)){
			cout &lt;&lt; &quot;Ungültige Eingabe, versuchen sie es erneut: &quot;;
		} else {
			doInput = false;
		}
	}
}
</code></pre>
<p>Nund wird der Benutzer zur Eingabe gefordert. Gibt er etwas falsches ein wird aber einfach das std::cin im if() übersprungen und es wird unendlich und ohne aufforderung zur Eingabe &quot;Ungültige Eingabe, versuchen sie es erneut:&quot; ausgegeben.</p>
<p>Woran liegt das?<br />
MfG, Series</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294108/std-cin-wird-in-while-übersprungen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 01:05:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294108.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Oct 2011 02:37:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::cin wird in while() übersprungen? on Tue, 18 Oct 2011 02:37:21 GMT]]></title><description><![CDATA[<p>Hey,<br />
ich habe ein kleines Problem. Ich nehme in meinem Programm eine Eingabe mit std::cin entgegen. Damit der Prozess wiederholt wird wenn der Benutzer eine falsche Eingabe tätigt habe ich das Ganze in eine while()-Schleife gesteckt.</p>
<pre><code class="language-cpp">void selectWord(){
	int input;
	bool doInput = true;
	cout &lt;&lt; &quot;Bitte wählen sie eine Zahl von 0-5: &quot;;
	while(doInput){
		if(!(cin &gt;&gt; input)){
			cout &lt;&lt; &quot;Ungültige Eingabe, versuchen sie es erneut: &quot;;
		} else {
			doInput = false;
		}
	}
}
</code></pre>
<p>Nund wird der Benutzer zur Eingabe gefordert. Gibt er etwas falsches ein wird aber einfach das std::cin im if() übersprungen und es wird unendlich und ohne aufforderung zur Eingabe &quot;Ungültige Eingabe, versuchen sie es erneut:&quot; ausgegeben.</p>
<p>Woran liegt das?<br />
MfG, Series</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132727</guid><dc:creator><![CDATA[Series]]></dc:creator><pubDate>Tue, 18 Oct 2011 02:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to std::cin wird in while() übersprungen? on Tue, 18 Oct 2011 04:53:25 GMT]]></title><description><![CDATA[<p>Series schrieb:</p>
<blockquote>
<p>Woran liegt das?</p>
</blockquote>
<p>Falls keine int Zahl aus dem Stream ausgelesen werden kann geht das cin Objekt in einen Fehlerzustand. Außerdem bleibt die falsche Eingabe im Stream erhalten. Du müsstest also vor einer Eingabe den Stream leeren und den Fehlerzustand aufheben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132729</guid><dc:creator><![CDATA[hmpf]]></dc:creator><pubDate>Tue, 18 Oct 2011 04:53:25 GMT</pubDate></item><item><title><![CDATA[Reply to std::cin wird in while() übersprungen? on Tue, 18 Oct 2011 11:48:41 GMT]]></title><description><![CDATA[<p>hmpf schrieb:</p>
<blockquote>
<p>Series schrieb:</p>
<blockquote>
<p>Woran liegt das?</p>
</blockquote>
<p>Falls keine int Zahl aus dem Stream ausgelesen werden kann geht das cin Objekt in einen Fehlerzustand. Außerdem bleibt die falsche Eingabe im Stream erhalten. Du müsstest also vor einer Eingabe den Stream leeren und den Fehlerzustand aufheben.</p>
</blockquote>
<p>So z.B.</p>
<pre><code class="language-cpp">#include &lt;limits&gt; 
void selectWord(){
	int input;
	bool doInput = true;
	cout &lt;&lt; &quot;Bitte wählen sie eine Zahl von 0-5: &quot;;
	while(doInput){
		if(!(cin &gt;&gt; input)){
		     cout &lt;&lt; &quot;Ungültige Eingabe, versuchen sie es erneut: &quot;;
             cin.clear();
             cin.ignore(numeric_limits&lt;streamsize&gt;::max(),'\n');
		} else {
			doInput = false;
		}
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2132808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132808</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 18 Oct 2011 11:48:41 GMT</pubDate></item></channel></rss>