<?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[std::cin Wie leert man den Puffer richig?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich entwickle eigentlich mit Codeblocks, habe aber folgendes Problem:</p>
<p>Ich muss den Puffer leeren, damit das &quot;ENTER&quot; verschwindet.</p>
<pre><code class="language-cpp">std::cin &gt;&gt; mode; // Eingabe wird mit ENTER bestätigt, welches dann noch rumschwirrt

//ENTER aus Puffer entfernen
std::cin.ignore();

// anschließend string einlesen
std::getline ( std::cin, string) ;
</code></pre>
<p>Mit dem MinGW Compiler von Codeblocks hat sowohl cin.get(), als auch cin.ignore() funktioniert.</p>
<p>Wenn ich das gleiche Proejekt nun mit Visual C++ Version 6.0 übersetze, führen oben besagte Methoden dazu, dass ich meine string-Eingabe zweimal mit ENTER besätigen muss.</p>
<p>Wenn ich im VisualC++ stattdessen cin.clear() aufrufe, klappt alles.</p>
<p>Dafür ist dann in Codeblocks das cin.clear() wirkungslos, bzw meine string-eingabe wird einfach übergangen, ohne dass ich die Möglichkeit habe etwas einzugeben.</p>
<p>Wie ist der Puffer nun korrekt zu leeren, damit das mit beiden compilern die gleichen Resultate hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194910/std-cin-wie-leert-man-den-puffer-richig</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 20:24:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194910.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Oct 2007 22:21:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::cin Wie leert man den Puffer richig? on Thu, 11 Oct 2007 22:21:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich entwickle eigentlich mit Codeblocks, habe aber folgendes Problem:</p>
<p>Ich muss den Puffer leeren, damit das &quot;ENTER&quot; verschwindet.</p>
<pre><code class="language-cpp">std::cin &gt;&gt; mode; // Eingabe wird mit ENTER bestätigt, welches dann noch rumschwirrt

//ENTER aus Puffer entfernen
std::cin.ignore();

// anschließend string einlesen
std::getline ( std::cin, string) ;
</code></pre>
<p>Mit dem MinGW Compiler von Codeblocks hat sowohl cin.get(), als auch cin.ignore() funktioniert.</p>
<p>Wenn ich das gleiche Proejekt nun mit Visual C++ Version 6.0 übersetze, führen oben besagte Methoden dazu, dass ich meine string-Eingabe zweimal mit ENTER besätigen muss.</p>
<p>Wenn ich im VisualC++ stattdessen cin.clear() aufrufe, klappt alles.</p>
<p>Dafür ist dann in Codeblocks das cin.clear() wirkungslos, bzw meine string-eingabe wird einfach übergangen, ohne dass ich die Möglichkeit habe etwas einzugeben.</p>
<p>Wie ist der Puffer nun korrekt zu leeren, damit das mit beiden compilern die gleichen Resultate hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383280</guid><dc:creator><![CDATA[robert.S]]></dc:creator><pubDate>Thu, 11 Oct 2007 22:21:29 GMT</pubDate></item><item><title><![CDATA[Reply to std::cin Wie leert man den Puffer richig? on Fri, 12 Oct 2007 09:09:49 GMT]]></title><description><![CDATA[<p>clear() setzt nur die Fehlerflags zurück (wenn welche gesetzt waren), ignore(n,c) entsorgt Zeichen aus dem Eingabepuffer (bis es entweder n Zeichen gelöscht hat oder auf das Zeichen c stößt)<sup>*</sup>. Also sollte die Lösung mit ignore() eigentlich das machen, was du erwartest - zur Sicherheit könntest du nur etwas andere Werte angeben: <code>cin.ignore(std::numeric_limits&lt;size_t&gt;::max(),'\n');</code> .</p>
<p><sup>*</sup>Defaultwerte sind n=1 und c=EOF</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383513</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 12 Oct 2007 09:09:49 GMT</pubDate></item><item><title><![CDATA[Reply to std::cin Wie leert man den Puffer richig? on Fri, 12 Oct 2007 13:34:19 GMT]]></title><description><![CDATA[<p>Mit codeblocks compiliert habe ich somit (cin.ignore(std::numeric_limits&lt;size_t&gt;::max(),'\n') ) jetzt den Effekt, dass ich wieder den String nicht eingeben kann.</p>
<p>Visual C++ scheint den Puffer damit nicht zu leeren, da ab der Stringeingabe gar keine Eingabe mehr möglich ist (std::cin &gt;&gt; mode hat dann immer schon einen Wert)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383790</guid><dc:creator><![CDATA[robert.S]]></dc:creator><pubDate>Fri, 12 Oct 2007 13:34:19 GMT</pubDate></item><item><title><![CDATA[Reply to std::cin Wie leert man den Puffer richig? on Mon, 15 Oct 2007 07:11:08 GMT]]></title><description><![CDATA[<p>Was hast du dem Programm denn für die cin&gt;&gt;mode Eingabe zu schlucken gegeben? Wenn dort Buchstaben gekommen sind (und mode ein int-Wert ist), schaltet der Stream das failbit ein - und verweigert vorübergehend die Zusammenarbeit, bis du es zurückgesetzt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385307</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 15 Oct 2007 07:11:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::cin Wie leert man den Puffer richig? on Mon, 15 Oct 2007 12:26:22 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Was hast du dem Programm denn für die cin&gt;&gt;mode Eingabe zu schlucken gegeben? Wenn dort Buchstaben gekommen sind (und mode ein int-Wert ist), schaltet der Stream das failbit ein - und verweigert vorübergehend die Zusammenarbeit, bis du es zurückgesetzt hast.</p>
</blockquote>
<p>mode ist ein integer und es wurde auch nur eine Zahl und ENTER eingegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385522</guid><dc:creator><![CDATA[robert.S]]></dc:creator><pubDate>Mon, 15 Oct 2007 12:26:22 GMT</pubDate></item></channel></rss>