<?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[Unerwartete Endlosschleife bei while]]></title><description><![CDATA[<p>Ohne lange zu Diskutieren will ich kurz und knapp mein Problem vorstellen.<br />
(Bin noch ein C++ anfänger, doch erkenne das Problem hierbei nicht)</p>
<pre><code class="language-cpp">bool a = true;

    while (a == true)
    {
        cout &lt;&lt; &quot;Dient zur Übersichtlichkeit&quot; &lt;&lt; endl;

        cin &gt;&gt; a;

        cout &lt;&lt; endl;
    }
</code></pre>
<p>Den eigentlichen Code habe ich natürlich bisschen abgeändert, doch das Problem sieht man hier ganz genau.<br />
Unzwar wenn ich 1 eingebe macht die while-Schleife den nächsten durchlauf, bei 0 hört sie auf. Wenn ich jedoch was anderes eingebe wie z.B. 2, dann gerate ich in eine Endlosschleife und kann mir nicht erklären warum!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282062/unerwartete-endlosschleife-bei-while</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 09:37:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282062.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Feb 2011 12:12:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:12:22 GMT]]></title><description><![CDATA[<p>Ohne lange zu Diskutieren will ich kurz und knapp mein Problem vorstellen.<br />
(Bin noch ein C++ anfänger, doch erkenne das Problem hierbei nicht)</p>
<pre><code class="language-cpp">bool a = true;

    while (a == true)
    {
        cout &lt;&lt; &quot;Dient zur Übersichtlichkeit&quot; &lt;&lt; endl;

        cin &gt;&gt; a;

        cout &lt;&lt; endl;
    }
</code></pre>
<p>Den eigentlichen Code habe ich natürlich bisschen abgeändert, doch das Problem sieht man hier ganz genau.<br />
Unzwar wenn ich 1 eingebe macht die while-Schleife den nächsten durchlauf, bei 0 hört sie auf. Wenn ich jedoch was anderes eingebe wie z.B. 2, dann gerate ich in eine Endlosschleife und kann mir nicht erklären warum!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020438</guid><dc:creator><![CDATA[dustail]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:12:22 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:29:57 GMT]]></title><description><![CDATA[<p><code>a</code> ist ein <code>bool</code> , d.h. entweder <code>true</code> oder <code>false</code> . Dabei wird alles außer 0 zu <code>true</code> , weswegen die Schleife auch durchläuft, wenn du 2 eingibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020445</guid><dc:creator><![CDATA[xkc]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:31:50 GMT]]></title><description><![CDATA[<p>Dass cin &gt;&gt; a dann nichts mehr tut, liegt daran, dass das Fail- oder Badbit gesetzt ist (prüfen kannst du das mit cin.bad() oder cin.fail()).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020447</guid><dc:creator><![CDATA[Streamer]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:33:48 GMT]]></title><description><![CDATA[<p>schon klar, aber auch wenn ich eine 2 eingebe, müsste doch bei</p>
<pre><code class="language-cpp">cin &gt;&gt; a;
</code></pre>
<p>eine abfrage stattfinden, was jedoch nicht passiert. Ich bekomme nur eine Endlosschleife mit der ersten cout Ausgabe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020449</guid><dc:creator><![CDATA[dustail]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:33:48 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:35:56 GMT]]></title><description><![CDATA[<p>a ist ein bool. Ein bool kann entweder true(=1) oder false(=0) sein. D.h. wenn du was anderes eingibst kommen Fehler. In deinem Fall eine Endlosschleife. Wenn du eine Schleife brauchst, die bei jeder ganzen Zahl weitermacht bis auf 0, probier doch sowas (ungetestet):</p>
<pre><code class="language-cpp">int a = 1;

while (a!=0)
{
  cout &lt;&lt; &quot;Dient zur Übersichtlichkeit&quot; &lt;&lt; endl;

  cin &gt;&gt; a;

  cout &lt;&lt; endl;
}
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020450</guid><dc:creator><![CDATA[g0nz0]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:35:56 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:35:33 GMT]]></title><description><![CDATA[<p>Die Zahl 2 lässt sich nicht in ein bool pressen, da ein bool nur aus einem Bit besteht. Dieses ist entweder 1 oder 0, also wahr oder falsch.</p>
<p>Der Stream setzt folglich das failbit, um einen Fehler zu signalisieren. Entweder du nutzt also lieber int, anstatt bool oder du musst auf das failbit reagieren.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main()
{
	bool a = true;

	while (a == true)
    {
        cout &lt;&lt; &quot;Dient zur Übersichtlichkeit&quot; &lt;&lt; endl;

        cin &gt;&gt; a;

        cout &lt;&lt; endl;

		if (cin.fail()) 
		{
			a = true;

			cin.clear(); // Failbit löschen
		}
    }

	return 0;
}
</code></pre>
<p>Besser wäre es aber so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main()
{
	int a = 1;

	while (a != 0)
    {
        cout &lt;&lt; &quot;Dient zur Übersichtlichkeit&quot; &lt;&lt; endl;

        cin &gt;&gt; a;

        cout &lt;&lt; endl;
    }

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2020451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020451</guid><dc:creator><![CDATA[kjkljkl]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:35:33 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:39:19 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antworten. Ich habe mir die cin.fail() Funktion angeschaut, schaut nützlich aus. Jedoch habe ich mich entschieden auf die int Mehtode zurückzugreifen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020455</guid><dc:creator><![CDATA[dustail]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to Unerwartete Endlosschleife bei while on Sun, 13 Feb 2011 12:42:16 GMT]]></title><description><![CDATA[<p>Noch ein kleiner Tipp. Du kannst hier eine fußgesteurte Schleife nutzen:</p>
<pre><code class="language-cpp">int a;

do
{
  cout &lt;&lt; &quot;Dient zur Übersichtlichkeit&quot; &lt;&lt; endl;

  cin &gt;&gt; a;

  cout &lt;&lt; endl;
} while (a != 0);
</code></pre>
<p>Du sparst dir nämlich so die Initialisierung der Variable a, wenn du die Bedingung erst am Ende der Schleife prüfst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020457</guid><dc:creator><![CDATA[kjkljkl]]></dc:creator><pubDate>Sun, 13 Feb 2011 12:42:16 GMT</pubDate></item></channel></rss>