<?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[int einlesen!]]></title><description><![CDATA[<p>Ich habe ein Dominospiel für die Schule geschrieben das als benutzereingabe einen int wert erwartet:</p>
<pre><code class="language-cpp">int MenschlicherSpieler::eingeben(){
int eingabe;
std::cin&gt;&gt;eingabe;
return eingabe;
}
</code></pre>
<p>Das Problem ist jetzt das wenn man einen Buchstaben statt einer Zahl eingibt cin damit nicht klarkommt-&gt; Endlosschleife.</p>
<p>Was gibt es da für Möglichkeiten damit umzugehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149822/int-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 09:39:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149822.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Jun 2006 20:39:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int einlesen! on Fri, 09 Jun 2006 20:39:33 GMT]]></title><description><![CDATA[<p>Ich habe ein Dominospiel für die Schule geschrieben das als benutzereingabe einen int wert erwartet:</p>
<pre><code class="language-cpp">int MenschlicherSpieler::eingeben(){
int eingabe;
std::cin&gt;&gt;eingabe;
return eingabe;
}
</code></pre>
<p>Das Problem ist jetzt das wenn man einen Buchstaben statt einer Zahl eingibt cin damit nicht klarkommt-&gt; Endlosschleife.</p>
<p>Was gibt es da für Möglichkeiten damit umzugehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074822</guid><dc:creator><![CDATA[blizzarac]]></dc:creator><pubDate>Fri, 09 Jun 2006 20:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Fri, 09 Jun 2006 20:48:23 GMT]]></title><description><![CDATA[<p>du könntest den char casten, dann hast du den ASCII-wert.<br />
oder du baust das hier ein:</p>
<pre><code class="language-cpp">for(char temp=&quot;A&quot;; temp&gt;=&quot;Z&quot;; temp++)
{
 if(eingabe==temp)
 {
  //Fehlerausgabe und Programmteil überspringen; wieder zurück zur Eingabe
 }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1074828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074828</guid><dc:creator><![CDATA[hilario]]></dc:creator><pubDate>Fri, 09 Jun 2006 20:48:23 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Fri, 09 Jun 2006 22:11:19 GMT]]></title><description><![CDATA[<p>Hoi erstmal,<br />
ALSO:</p>
<p>blizzarac schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int MenschlicherSpieler::eingeben(){
int eingabe;
std::cin&gt;&gt;eingabe;
return eingabe;
}
</code></pre>
<p>Das Problem ist jetzt das wenn man einen Buchstaben statt einer Zahl eingibt cin damit nicht klarkommt-&gt; Endlosschleife.</p>
<p>Was gibt es da für Möglichkeiten damit umzugehen?</p>
</blockquote>
<p>das (-&gt; &quot;Endlosschleife&quot;) kann eigentl. nicht sein, denn der Operator &gt;&gt; ist für die Klasse istream auch für int überladen...d.h.:<br />
wenn du sowas machst:</p>
<pre><code class="language-cpp">int iInput;
cin &gt;&gt; iInput;
</code></pre>
<p>funktioniert das einwandfrei... du solltest nur um sicher zugehen ne Fehlerüberprüfung einbauen...etwa so:</p>
<pre><code class="language-cpp">int iInput;
if(cin &gt;&gt; iInput)
{
   // Eingaben OK, jetzt verarbeiten!
   // ...
}
else
{
   // fehlerhafte Eingabe des Benutzers, jetzt debugging!
   // ...
}
</code></pre>
<p>__________________________________________________<br />
also, in deinem Fall:</p>
<pre><code class="language-cpp">int MenschlicherSpieler::eingeben()
{
    int eingabe;
    if(std::cin &gt;&gt; eingabe)
        return (eingabe);
    else
        return (-1); // Fehler, keine gute Lösung, da nicht eindeutig!
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1074842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074842</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 09 Jun 2006 22:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Sun, 11 Jun 2006 11:15:56 GMT]]></title><description><![CDATA[<p>Das Problem ist nicht das ich keine Integer eingeben kann.<br />
Das Problem ist das wenn ich statt einem Integer einen Buchstaben oder mehr davon eingebe die cin methode selbst ärger macht d.h. eine Fehlerbehebung danach nicht moeglich ist <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@Codefinder</a> genauer lesen</p>
<p>Den Wert als char einlesen ist eine möglickeit, aber für eine einfache integereingabe ist dass ein bischen viel. Gibt es nicht eine in C++ integrierte Lösung für das problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075509</guid><dc:creator><![CDATA[blizzarac]]></dc:creator><pubDate>Sun, 11 Jun 2006 11:15:56 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Sun, 11 Jun 2006 11:38:36 GMT]]></title><description><![CDATA[<p>hi nochmal,<br />
Ich hab deine Klassenmethode (denk mal es ist eine <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="😉"
    /> ) mal in eine Funktion umgeschrieben... da:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int eingeben()
{
   int eingabe;
   cin &gt;&gt; eingabe;
   return (eingabe);
}
</code></pre>
<p>ist ja genau das gleiche, nur als <strong>Funktion</strong>...<br />
so, nun hab ich das so getestet:</p>
<pre><code class="language-cpp">int main()
{
   cout &lt;&lt; eingeben() &lt;&lt; endl;
   return (0);
}
</code></pre>
<p>ERGEBIS: er hängt <strong>nicht</strong>; er fällt <strong>nicht</strong> inne <strong>Endlosschleife</strong> oder sonst was...<br />
Bei einer Eingabe von bspw: &quot;abc&quot; gibt er &quot;-858993460&quot; aus!<br />
Das Problem kann also nur in deinem folgenden Code liegen, oder ich hab dich total falsch verstande <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <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="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <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>
<p>PS_1: siehe auch:</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>das (-&gt; &quot;Endlosschleife&quot;) kann eigentl. nicht sein, denn der Operator &gt;&gt; ist für die Klasse istream auch für int überladen...</p>
</blockquote>
<p>Das schließt Debugging natürlich mit ein!</p>
<p>PS_2:</p>
<p>blizzarac schrieb:</p>
<blockquote>
<p>Fehlerbehebung danach nicht moeglich ist <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@Codefinder</a> genauer lesen</p>
</blockquote>
<p>wo versuchst du denn den Fehler zu behandeln, bzw. zu prüfen, ob überhaupt einer vorliegt...wäre mal interessant! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075533</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 11 Jun 2006 11:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Sun, 11 Jun 2006 11:39:36 GMT]]></title><description><![CDATA[<p>blizzarac schrieb:</p>
<blockquote>
<p>Was gibt es da für Möglichkeiten damit umzugehen?</p>
</blockquote>
<p>Überprüfe ob deine Eingabe tatsächlich eine Zahl ist. --&gt; Forum Suche</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075536</guid><dc:creator><![CDATA[Christoph K.]]></dc:creator><pubDate>Sun, 11 Jun 2006 11:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Sun, 11 Jun 2006 12:34:56 GMT]]></title><description><![CDATA[<p>Entferne nach der fehlerhaften Eingabe die fehlerhaften Zeichen aus dem Stream bevor Du versuchst wieder eine Zahl zu lesen (wenn Du eine Zahl liest, liest er Ziffern. Wenn im Eingabepuffer Buchstaben stehen, liest er nichts).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a>:<br />
Ja klar, wenn Du die Eingabe nicht in eine Schleife legst gibt es auch keine Endlos<strong>schleife</strong> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1075580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075580</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sun, 11 Jun 2006 12:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Sun, 11 Jun 2006 12:44:46 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Ja klar, wenn Du die Eingabe nicht in eine Schleife legst gibt es auch keine Endlosschleife <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>
</blockquote>
<p>ich wollte nur klar machen, dass das</p>
<p>blizzarac schrieb:</p>
<blockquote>
<p>die cin methode selbst ärger macht</p>
</blockquote>
<p>nicht sein kann... <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>
<p>PS:</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Entferne nach der fehlerhaften Eingabe die fehlerhaften Zeichen aus dem Stream bevor Du versuchst wieder eine Zahl zu lesen (wenn Du eine Zahl liest, liest er Ziffern. Wenn im Eingabepuffer Buchstaben stehen, liest er nichts).</p>
</blockquote>
<p>damit meint er glaub ich: <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">cin.clear();
cin.sync();
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075587</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 11 Jun 2006 12:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to int einlesen! on Sun, 11 Jun 2006 12:53:33 GMT]]></title><description><![CDATA[<p>Weiss persönlich nicht was sync() macht aber clear() ist jedenfalls schonmal sinnvoll um die Fehlerflags zu löschen. Dann evtl. noch</p>
<pre><code class="language-cpp">cin.ignore(std::numeric_limits&lt;int&gt;::max(), '\n');
</code></pre>
<p>um alle Zeichen bis zum Ende der Zeile zu ignorieren (da die Eingabe ja <strong>immer</strong> mit Return abgeschlossen wird (input buffering), gibt man dem Benutzer so die Möglichkeit eines neuen Versuchs)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075592</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sun, 11 Jun 2006 12:53:33 GMT</pubDate></item></channel></rss>