<?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[Schleife hängt sich nach falscheingabe im Endlosmodus auf.]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Problem mit einer meiner Methoden. Genauer gesagt der zum eingeben des Alters.<br />
Wenn ich das Alter (DD MM JJJJ) falsch eingebe dann warnt er mich wie gewollt, dass ich das Alter richtig einzugeben habe und gibt mir auch die Möglichkeit dazu. Wenn ich dann aber ein korrektes Alter angebe dann nimmt er es nicht an (generell wird kein Alter mehr akzeptiert).<br />
Kurios ist, dass er wenn ich zu beginn ein alter Angebe welches korrekt ist es ohne Probleme nimmt. Wenn ich aber eine Falscheingabe getätigt habe er genau dieses nicht mehr nimmt.</p>
<p>Zum Hintergrund: Ich muss eine Benutzerverwaltung programmieren mit mehreren Parametern (Name, Vorname, alter etc...).</p>
<p>Kann bitte jemand über meinen Code schauen und mir evt einen tipp geben was ich falsch gemacht habe. Danke!</p>
<p>(So und nun hoffe ich auch noch im richtigen Bereich zu sein :))</p>
<pre><code>void ski::gebdatum()
{
	int x = 0;
	do
	{
		cout &lt;&lt; &quot;Geburtsdatum DD MM JJJJ: &quot; &lt;&lt; endl;
		cin &gt;&gt; dated &gt;&gt; datem &gt;&gt; datej;

		if ((dated &lt; 1) || (dated &gt; 31) || (datem &lt; 1) || (datem &gt; 12) || (datej &lt; 1910) || (datej &gt; 2011))
			x = 1;

		if (x == 1)
		cout &lt;&lt; &quot;Bitte geben sie das Geburtsdatum korrekt ein.&quot; &lt;&lt; endl;

	} 
	while (x == 1);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/295091/schleife-hängt-sich-nach-falscheingabe-im-endlosmodus-auf</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 15:11:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295091.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Nov 2011 06:11:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schleife hängt sich nach falscheingabe im Endlosmodus auf. on Mon, 07 Nov 2011 06:11:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Problem mit einer meiner Methoden. Genauer gesagt der zum eingeben des Alters.<br />
Wenn ich das Alter (DD MM JJJJ) falsch eingebe dann warnt er mich wie gewollt, dass ich das Alter richtig einzugeben habe und gibt mir auch die Möglichkeit dazu. Wenn ich dann aber ein korrektes Alter angebe dann nimmt er es nicht an (generell wird kein Alter mehr akzeptiert).<br />
Kurios ist, dass er wenn ich zu beginn ein alter Angebe welches korrekt ist es ohne Probleme nimmt. Wenn ich aber eine Falscheingabe getätigt habe er genau dieses nicht mehr nimmt.</p>
<p>Zum Hintergrund: Ich muss eine Benutzerverwaltung programmieren mit mehreren Parametern (Name, Vorname, alter etc...).</p>
<p>Kann bitte jemand über meinen Code schauen und mir evt einen tipp geben was ich falsch gemacht habe. Danke!</p>
<p>(So und nun hoffe ich auch noch im richtigen Bereich zu sein :))</p>
<pre><code>void ski::gebdatum()
{
	int x = 0;
	do
	{
		cout &lt;&lt; &quot;Geburtsdatum DD MM JJJJ: &quot; &lt;&lt; endl;
		cin &gt;&gt; dated &gt;&gt; datem &gt;&gt; datej;

		if ((dated &lt; 1) || (dated &gt; 31) || (datem &lt; 1) || (datem &gt; 12) || (datej &lt; 1910) || (datej &gt; 2011))
			x = 1;

		if (x == 1)
		cout &lt;&lt; &quot;Bitte geben sie das Geburtsdatum korrekt ein.&quot; &lt;&lt; endl;

	} 
	while (x == 1);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2141445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2141445</guid><dc:creator><![CDATA[Daimond25]]></dc:creator><pubDate>Mon, 07 Nov 2011 06:11:15 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife hängt sich nach falscheingabe im Endlosmodus auf. on Mon, 07 Nov 2011 07:35:18 GMT]]></title><description><![CDATA[<p>So wie das für mich aussieht musst du die Variable <code>x</code> am Anfang der Schleife einfach auf '0' setzen.</p>
<pre><code class="language-cpp">void ski::gebdatum()
{
    int x = 0;
    do
    {
        x = 0;
        // Rest des Codes

    }
    while (x == 1);

}
</code></pre>
<p>Sobald eine Fehleingabe passiert, bleibt <code>x</code> ständig auf Wert 1 hängen, demnach läuft auch Deine Schleife immer erneut durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2141454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2141454</guid><dc:creator><![CDATA[PuerNoctis@Offline]]></dc:creator><pubDate>Mon, 07 Nov 2011 07:35:18 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife hängt sich nach falscheingabe im Endlosmodus auf. on Mon, 07 Nov 2011 07:43:05 GMT]]></title><description><![CDATA[<p>Super, vielen dank, hat funktioniert und macht auch sinn (wenn ich jetzt drüber nachdenke :))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2141458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2141458</guid><dc:creator><![CDATA[Daimond25]]></dc:creator><pubDate>Mon, 07 Nov 2011 07:43:05 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife hängt sich nach falscheingabe im Endlosmodus auf. on Mon, 07 Nov 2011 07:56:20 GMT]]></title><description><![CDATA[<p>Alternativen:</p>
<pre><code class="language-cpp">void ski::gebdatum()
{
    while(true)
    {
        cout &lt;&lt; &quot;Geburtsdatum DD MM JJJJ: &quot; &lt;&lt; endl;
        cin &gt;&gt; dated &gt;&gt; datem &gt;&gt; datej;

        if (!((dated &lt; 1) || (dated &gt; 31) || (datem &lt; 1) || (datem &gt; 12) || (datej &lt; 1910) || (datej &gt; 2011))) //mit ! den logischen wert umkehren
            break;

        cout &lt;&lt; &quot;Bitte geben sie das Geburtsdatum korrekt ein.&quot; &lt;&lt; endl;

    }

}
</code></pre>
<pre><code class="language-cpp">void ski::gebdatum()
{
    bool richtigesDatum = false;
    do
    {
        cout &lt;&lt; &quot;Geburtsdatum DD MM JJJJ: &quot; &lt;&lt; endl;
        cin &gt;&gt; dated &gt;&gt; datem &gt;&gt; datej;

        if (!((dated &lt; 1) || (dated &gt; 31) || (datem &lt; 1) || (datem &gt; 12) || (datej &lt; 1910) || (datej &gt; 2011)))
            richtigesDarum = true;
        else {
             cout &lt;&lt; &quot;Bitte geben sie das Geburtsdatum korrekt ein.&quot; &lt;&lt; endl;
        }

    } while(!richtigesDatum);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2141461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2141461</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Mon, 07 Nov 2011 07:56:20 GMT</pubDate></item></channel></rss>