<?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[if Wiederholung]]></title><description><![CDATA[<p>Hallo,<br />
seit Stunden sitze ich vor demselben Problem und hoffe, dass ihr mir weiterhelfen könnt. Beim folgenden Programm wird in main, void Intro aufgerufen. Mit der Taste 1,2 oder 3 komm ich wieder zurück zu main. Sollte nun aber 45 eingegeben werden wiederholt er void so lange bis die Eingabe korrekt ist. Das funktioniert leider nicht mit Buchstaben. Sobald ich statt z.B. 1 den Buchstaben A eingebe bin ich in einer Dauerschleife. Das hat sicher mit int was zu tun aber ich komm nicht drauf. (Bin noch ein Anfänger)Beim Autofahren kommen mir die besten Einfälle.<br />
Zum Code:</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int Eingabe;
int warten;

void Intro()
{
	cout &lt;&lt; &quot;Eingabe 1, 2 oder 3\n&quot;;
	cin &gt;&gt; Eingabe;
	if (Eingabe == 1)
	{
		cout &lt;&lt; &quot;Das hast du toll gemacht&quot;;
	}
	else if (Eingabe == 2)
	{
		cout &lt;&lt; &quot;Das hast du toll gemacht&quot;;
	}
	else if (Eingabe == 3)
	{
		cout &lt;&lt; &quot;Das hast du toll gemacht&quot;;
	}
	else
	{
		cout &lt;&lt; &quot;Fehler!\n&quot;;
		Intro();
	}
}

int main()
{
	Intro();
	cin &gt;&gt; warten;
    return 0;
}
</code></pre>
<p>Ich hoffe dass mir wer helfen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Mit freundlichen Grüßen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/340201/if-wiederholung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 08:36:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340201.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Oct 2016 13:54:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to if Wiederholung on Tue, 25 Oct 2016 13:54:40 GMT]]></title><description><![CDATA[<p>Hallo,<br />
seit Stunden sitze ich vor demselben Problem und hoffe, dass ihr mir weiterhelfen könnt. Beim folgenden Programm wird in main, void Intro aufgerufen. Mit der Taste 1,2 oder 3 komm ich wieder zurück zu main. Sollte nun aber 45 eingegeben werden wiederholt er void so lange bis die Eingabe korrekt ist. Das funktioniert leider nicht mit Buchstaben. Sobald ich statt z.B. 1 den Buchstaben A eingebe bin ich in einer Dauerschleife. Das hat sicher mit int was zu tun aber ich komm nicht drauf. (Bin noch ein Anfänger)Beim Autofahren kommen mir die besten Einfälle.<br />
Zum Code:</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int Eingabe;
int warten;

void Intro()
{
	cout &lt;&lt; &quot;Eingabe 1, 2 oder 3\n&quot;;
	cin &gt;&gt; Eingabe;
	if (Eingabe == 1)
	{
		cout &lt;&lt; &quot;Das hast du toll gemacht&quot;;
	}
	else if (Eingabe == 2)
	{
		cout &lt;&lt; &quot;Das hast du toll gemacht&quot;;
	}
	else if (Eingabe == 3)
	{
		cout &lt;&lt; &quot;Das hast du toll gemacht&quot;;
	}
	else
	{
		cout &lt;&lt; &quot;Fehler!\n&quot;;
		Intro();
	}
}

int main()
{
	Intro();
	cin &gt;&gt; warten;
    return 0;
}
</code></pre>
<p>Ich hoffe dass mir wer helfen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Mit freundlichen Grüßen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512832</guid><dc:creator><![CDATA[Noea]]></dc:creator><pubDate>Tue, 25 Oct 2016 13:54:40 GMT</pubDate></item><item><title><![CDATA[Reply to if Wiederholung on Tue, 25 Oct 2016 14:46:05 GMT]]></title><description><![CDATA[<p>Da Buchstaben keine Zahlen sind, befindet sich der Stream cin nach der Eingabe eines Buchstabens im Fehlerstatus, den du danach genau so wie den Buchstaben entfernen musst.</p>
<p>Also:</p>
<pre><code>if (std::cin &gt;&gt; Eingabe) {
    // Eingabe einer Zahl war erfolgreich!
    ...
} else {
    if (std::cin.eof()) {
        // wir haben das Ende erreicht, mehr kommt nicht
        return;
    }
    // ansonsten gab es eine fehlerhafte Eingabe
    // Fehlerstatus löschen
    std::cin.clear();
    // und Eingabepuffer bis zum nächsten Umbruch leeren
    std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
}
</code></pre>
<p>Übrigens hat dein Programm noch 2 andere Probleme:<br />
1. Globale Variablen (&quot;Eingabe&quot;) sind böse<br />
2. Du rufst Intro rekursiv auf. Gib lange genug Zahlen ein und dein Programm wird eine Segmentation Violation verursachen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512840</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Tue, 25 Oct 2016 14:46:05 GMT</pubDate></item><item><title><![CDATA[Reply to if Wiederholung on Tue, 25 Oct 2016 14:58:54 GMT]]></title><description><![CDATA[<p>Noea schrieb:</p>
<blockquote>
<p>... wiederholt er void so lange ...</p>
</blockquote>
<p>Ich weiß nicht, was du dir magisches unter void vorstellst, aber das bedeutet nichts weiter als dass die Funktion (hier Intro) keinen Wert zurück liefert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512844</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 25 Oct 2016 14:58:54 GMT</pubDate></item><item><title><![CDATA[Reply to if Wiederholung on Tue, 25 Oct 2016 15:23:38 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>Gib lange genug Zahlen ein und dein Programm wird eine Segmentation Violation verursachen!</p>
</blockquote>
<p>Argh. Ich meinte natürlich einen Stack Overflow. <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/2512848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512848</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Tue, 25 Oct 2016 15:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to if Wiederholung on Tue, 25 Oct 2016 15:44:41 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>2. Du rufst Intro rekursiv auf. Gib lange genug Zahlen ein und dein Programm wird eine Segmentation Violation verursachen!</p>
</blockquote>
<p>Das war auch mein erster Gedanke. Stack overflow natürlich.<br />
Zur Not schreibe ich ein Miniprogramm, das dein Programm mit unzulässigen Eingaben bombardiert. Irgendwann kracht es und ich bin meinem Ziel ein Stück näher gekommen.<br />
Ja, ja - es gibt böse Leute da draussen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512852</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Tue, 25 Oct 2016 15:44:41 GMT</pubDate></item></channel></rss>