<?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[Problem mit cin.get in do-while Schleife]]></title><description><![CDATA[<p>Wenn ich in einer do-while Schleife eine Abfrage mit cin.get einbaue und statt einer Eingabe nur die Eingabetaste drücke, hängt das Programm in einer Endlosschleife fest und wartet nicht mehr auf eine neue Eingabe:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main (int argc, int *argv[])
{
   char string[11];
   int number = 0;

  do
  {
     cin.sync ();

     cout &lt;&lt; &quot;Eingabe: &quot;;
     cin.get (string, 10);

     cin.sync ();
  } while (number == 0);

   return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/159653/problem-mit-cin-get-in-do-while-schleife</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 16:04:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159653.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Sep 2006 15:47:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Sun, 17 Sep 2006 15:47:15 GMT]]></title><description><![CDATA[<p>Wenn ich in einer do-while Schleife eine Abfrage mit cin.get einbaue und statt einer Eingabe nur die Eingabetaste drücke, hängt das Programm in einer Endlosschleife fest und wartet nicht mehr auf eine neue Eingabe:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main (int argc, int *argv[])
{
   char string[11];
   int number = 0;

  do
  {
     cin.sync ();

     cout &lt;&lt; &quot;Eingabe: &quot;;
     cin.get (string, 10);

     cin.sync ();
  } while (number == 0);

   return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1139080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139080</guid><dc:creator><![CDATA[HalliDalli]]></dc:creator><pubDate>Sun, 17 Sep 2006 15:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Sun, 17 Sep 2006 16:01:46 GMT]]></title><description><![CDATA[<p>Weil dein Stream kaputt ist.</p>
<pre><code class="language-cpp">if(!cin)
    cin.clear();
</code></pre>
<p>vor die Eingabe.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139089</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 17 Sep 2006 16:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Sun, 17 Sep 2006 16:10:45 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Hilfe, aber das Problem besteht weiterhin, obwohl ich dein Code-Schnipsel vor die Abfrage eingefügt habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139093</guid><dc:creator><![CDATA[HalliDalli]]></dc:creator><pubDate>Sun, 17 Sep 2006 16:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Sun, 17 Sep 2006 18:05:52 GMT]]></title><description><![CDATA[<p>cin.get lässte das &quot;Enter&quot; im Strean stehen, daher kommt der Fehler.<br />
Mach aus dem get ein getline, dann besteht der Fehler nicht mehr.</p>
<p>Wenn du doch get benutzen möchtest baue noch ein</p>
<pre><code class="language-cpp">cin.ignore(cin.rdbuf()-&gt;in_avail());
</code></pre>
<p>eine damit der Zeilenumbruch ignoriert/übergangen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139154</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 17 Sep 2006 18:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Mon, 18 Sep 2006 18:31:40 GMT]]></title><description><![CDATA[<p>@Freak_Coder: Dein Vorschlag hat leider auch nicht geholfen. Ich habe aber, glaube ich, dass Problem gefunden (s.u.).</p>
<p>Ich habe einen Freund nach einem Tipp gefragt und er schlug mir fflush (stdin) vor. Funktionierte leider auch nicht, bis ich in der MSDN unter fflush nachgesehen habe und sah, dass es dort nicht mit cin.get () sondern mit gets () verwendet wird. Aber warum funktioniert es mit gets () und mit cin.get () nicht?</p>
<p>MfG<br />
HalliDalli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139929</guid><dc:creator><![CDATA[HalliDalli]]></dc:creator><pubDate>Mon, 18 Sep 2006 18:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Mon, 18 Sep 2006 20:21:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char string[11];
int number = 0;

do
{
	std::cout &lt;&lt; &quot;Eingabe: &quot;;
	std::cin.get (string, 10);
	std::cin.clear();
	std::cin.ignore( std::cin.rdbuf()-&gt;in_avail() );
} while (number == 0);
</code></pre>
<p>geht!</p>
<p>Oder aber mit std::string:</p>
<pre><code class="language-cpp">std::string text;
int number = 0;

do
{
	std::cout &lt;&lt; &quot;Eingabe: &quot;;
	std::getline( std::cin, text );
	std::cin.clear();
	std::cin.ignore( std::cin.rdbuf()-&gt;in_avail() );
} while ( (number == 0) &amp;&amp; ( text != &quot;exit&quot; ) );
</code></pre>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1140019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1140019</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 18 Sep 2006 20:21:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Mon, 18 Sep 2006 20:36:04 GMT]]></title><description><![CDATA[<p>Nabend,</p>
<pre><code class="language-cpp">std::cin.rdbuf()-&gt;in_avail()
</code></pre>
<p>in_avail() liefert in einigen Implementierungen allerdings nur 0. Irgendwo hat<br />
Humesikkins einmal einen Post darueber geschrieben. Im selben Thread gabs auch<br />
ein Workarround fuer das Problem.</p>
<p>D. h. konkret, dass der Code nicht zwingend ueberall lauffaehig ist.</p>
<p>gruss<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1140025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1140025</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Mon, 18 Sep 2006 20:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit cin.get in do-while Schleife on Tue, 19 Sep 2006 08:57:22 GMT]]></title><description><![CDATA[<p>HalliDalli schrieb:</p>
<blockquote>
<p>Ich habe einen Freund nach einem Tipp gefragt und er schlug mir fflush (stdin) vor. Funktionierte leider auch nicht, bis ich in der MSDN unter fflush nachgesehen habe und sah, dass es dort nicht mit cin.get () sondern mit gets () verwendet wird. Aber warum funktioniert es mit gets () und mit cin.get () nicht?</p>
</blockquote>
<p>Erstens: &quot;fflush(stdin)&quot; ist Schrott - sofort wieder vergessen.</p>
<p>Zweitens: stdin und cin arbeiten zwar auf dem selben Eingabekanal (Tastatur), sind aber deswegen noch lange nicht uneingeschränkt kombinierbar. (und überhaupt ist es selten eine gute Idee, C und C++ Methoden zu vermischen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1140175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1140175</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 19 Sep 2006 08:57:22 GMT</pubDate></item></channel></rss>