<?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[Wie verwerfe ich bereits eingegebene Daten in std::istream?]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich suche eine Art flush für std::cin.<br />
Vorweg sollte ich sagen, dass die<br />
hier <a href="http://forums.devx.com/archive/index.php/t-87000.html" rel="nofollow">http://forums.devx.com/archive/index.php/t-87000.html</a><br />
und hier <a href="http://www.daniweb.com/forums/thread90228.html" rel="nofollow">http://www.daniweb.com/forums/thread90228.html</a><br />
vorgestellten Lösungen mir leider nicht geholfen haben. Diese führen eher dazu, dass jeder zweite String ignoriert wird, was nicht das ist, was ich möchte.</p>
<p>Ein Testprogramm zur Konkretisierung:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    while (true)
    {
        std::cout &lt;&lt; &quot;&gt; &quot;;
        std::string line;
        std::getline(std::cin, line);
        std::cout &lt;&lt; &quot;echo &quot; &lt;&lt; line &lt;&lt; std::endl;
    }
    return 0;
}
</code></pre>
<p>Wenn ich nun so etwas wie</p>
<pre><code>a
b
c
</code></pre>
<p>(also durch newline getrennte Strings) in die Konsole per copy &amp; paste einfüge, wird die oben gezeigte Schleife drei Mal durchlaufen. Ich möchte allerdings nur den aller ersten String haben und den Rest ignorieren. Das heißt, ich benötige eine Möglichkeit <strong>bereits eingegebenen</strong> Input zu verwerfen ohne noch nicht eingegebenen Input zu beeinträchtigen.</p>
<p>Hat jemand eine Lösung?<br />
Dank im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250028/wie-verwerfe-ich-bereits-eingegebene-daten-in-std-istream</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 04:06:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250028.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Sep 2009 13:21:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 13:21:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich suche eine Art flush für std::cin.<br />
Vorweg sollte ich sagen, dass die<br />
hier <a href="http://forums.devx.com/archive/index.php/t-87000.html" rel="nofollow">http://forums.devx.com/archive/index.php/t-87000.html</a><br />
und hier <a href="http://www.daniweb.com/forums/thread90228.html" rel="nofollow">http://www.daniweb.com/forums/thread90228.html</a><br />
vorgestellten Lösungen mir leider nicht geholfen haben. Diese führen eher dazu, dass jeder zweite String ignoriert wird, was nicht das ist, was ich möchte.</p>
<p>Ein Testprogramm zur Konkretisierung:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    while (true)
    {
        std::cout &lt;&lt; &quot;&gt; &quot;;
        std::string line;
        std::getline(std::cin, line);
        std::cout &lt;&lt; &quot;echo &quot; &lt;&lt; line &lt;&lt; std::endl;
    }
    return 0;
}
</code></pre>
<p>Wenn ich nun so etwas wie</p>
<pre><code>a
b
c
</code></pre>
<p>(also durch newline getrennte Strings) in die Konsole per copy &amp; paste einfüge, wird die oben gezeigte Schleife drei Mal durchlaufen. Ich möchte allerdings nur den aller ersten String haben und den Rest ignorieren. Das heißt, ich benötige eine Möglichkeit <strong>bereits eingegebenen</strong> Input zu verwerfen ohne noch nicht eingegebenen Input zu beeinträchtigen.</p>
<p>Hat jemand eine Lösung?<br />
Dank im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778828</guid><dc:creator><![CDATA[keiner]]></dc:creator><pubDate>Tue, 15 Sep 2009 13:21:11 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 14:06:47 GMT]]></title><description><![CDATA[<p>Schildere mal genauer Dein Vorhaben.<br />
Ist doch logisch, dass wenn Du drei Zeilen eingibst (und nichts anderes macht dieses c/p ja), Dir std::cin auch drei Zeilen zurueckgibt, wenn Du es in einer Schleife ausfuehrst.<br />
Du willst nur die erste Zeile? Entferne &quot;while(true)&quot;.</p>
<p>Andernfalls gibts auch noch std::cin.ignore, was MOEGLICHERWEISE in die Richtung geht, da ich aber nicht wirklich weiss was Du vorhast, kann man ich nur raten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778858</guid><dc:creator><![CDATA[cpploser]]></dc:creator><pubDate>Tue, 15 Sep 2009 14:06:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 14:36:45 GMT]]></title><description><![CDATA[<p>Grüß dich!</p>
<p>Vielleicht hilft dir diese std-Liste weiter...<br />
Einfach die richtigen Befehle zusammenwürfeln!</p>
<p><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/1778871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778871</guid><dc:creator><![CDATA[44203215]]></dc:creator><pubDate>Tue, 15 Sep 2009 14:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 18:29:38 GMT]]></title><description><![CDATA[<p>cpploser schrieb:</p>
<blockquote>
<p>Schildere mal genauer Dein Vorhaben.<br />
Ist doch logisch, dass wenn Du drei Zeilen eingibst (und nichts anderes macht dieses c/p ja), Dir std::cin auch drei Zeilen zurueckgibt, wenn Du es in einer Schleife ausfuehrst.<br />
Du willst nur die erste Zeile? Entferne &quot;while(true)&quot;.</p>
<p>Andernfalls gibts auch noch std::cin.ignore, was MOEGLICHERWEISE in die Richtung geht, da ich aber nicht wirklich weiss was Du vorhast, kann man ich nur raten.</p>
</blockquote>
<p>Es geht ja gerade darum, mehrere Zeilen nacheinander einzulesen. Allerdings soll es eben nur möglich sein, jeweils nur eine Zeile einzugeben.<br />
Um das zu verdeutlichen das while(true).<br />
Ich möchte sozusagen eine Zeile einlesen, und dann den restlichen Pufferinhalt ignorieren, bis eine weitere Eingabe getätigt wird.<br />
Bei c/p werden jedoch direkt mehrere Zeilen eingegeben. Dies soll verhindert werden.<br />
Mit std::istream.ignore() habe ich bereits gespielt.<br />
Das Problem liegt darin zu entscheiden, wann man die Grenze von bereits eingegebenen zu noch nicht eingegebenen Zeilen überschreitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779000</guid><dc:creator><![CDATA[keiner]]></dc:creator><pubDate>Tue, 15 Sep 2009 18:29:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 18:36:13 GMT]]></title><description><![CDATA[<p>keiner schrieb:</p>
<blockquote>
<p>Das Problem liegt darin zu entscheiden, wann man die Grenze von bereits eingegebenen zu noch nicht eingegebenen Zeilen überschreitet.</p>
</blockquote>
<p>Das ist deine Definitionssache, es gibt keinen technischen Unterschied. Wie soll deine Definition lauten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779002</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 15 Sep 2009 18:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 18:51:14 GMT]]></title><description><![CDATA[<p>Wenn ich dich richtig verstanden habe dann Versuchs mal damit:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main() 
{    
     string x;
     while(1)
     {
       cout &lt;&lt; &quot;Daten eingeben : &quot;;
       getline(cin,x);
       cout &lt;&lt; &quot;Nur diese Daten verarbeiten: &quot; &lt;&lt; x &lt;&lt; endl;
       while (x.length() &gt; 0)
       {
           cout &lt;&lt; &quot;Weitere Zeilen einlesen: &quot;;
           getline(cin,x);
           cout &lt;&lt; &quot;Zeile verworfen: &quot; &lt;&lt; x &lt;&lt; endl;
       } 
     }
 return 0;
}
</code></pre>
<p>EDIT: #include &lt;string&gt; vergessen, while schleife erweitert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779006</guid><dc:creator><![CDATA[DeepCopy]]></dc:creator><pubDate>Tue, 15 Sep 2009 18:51:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 19:26:57 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>keiner schrieb:</p>
<blockquote>
<p>Das Problem liegt darin zu entscheiden, wann man die Grenze von bereits eingegebenen zu noch nicht eingegebenen Zeilen überschreitet.</p>
</blockquote>
<p>Das ist deine Definitionssache, es gibt keinen technischen Unterschied. Wie soll deine Definition lauten?</p>
</blockquote>
<p>Okay. Sagen wir \n steht innerhalb der Eingabe für newline (Der String &quot;\n&quot; ist bei Eingabe in der Konsole ja eben nichts weiter als ein String.). Falls, zb per c/p, mehrere Zeilen gleichzeitig eingegeben werden, erwarte ich in etwa dieses Verhalten:</p>
<pre><code>&gt; a\nb\nc\n
echo a // Zeilen &quot;b&quot; und &quot;c&quot; werden verworfen
&gt; foo\nbar
echo foo // Zeile &quot;bar&quot; wird verworfen
</code></pre>
<p>Ich würde also folgende Definition geben:<br />
Bereits eingegebene Daten: Daten, die sich im Puffer des Streams befinden.<br />
Noch nicht eingegebene Daten: Daten, die sich (da noch nicht eingegeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    />) noch nicht im Puffer des Streams befinden.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22651">@DeepCopy</a>: Dein Beispiel erfordert ein zweites newline, um die innere Schleife zu verlassen. Bis auf diese Tatsache, relativ genau das, was ich suche.</p>
<p>...übrigens scheint istream::seekg() auch nicht weiter zu helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779018</guid><dc:creator><![CDATA[keiner]]></dc:creator><pubDate>Tue, 15 Sep 2009 19:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 20:13:19 GMT]]></title><description><![CDATA[<p>keiner schrieb:</p>
<blockquote>
<p>Ich würde also folgende Definition geben:<br />
Bereits eingegebene Daten: Daten, die sich im Puffer des Streams befinden.<br />
Noch nicht eingegebene Daten: Daten, die sich (da noch nicht eingegeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    />) noch nicht im Puffer des Streams befinden.</p>
</blockquote>
<p>Folgender Befehl, tut am ehesten das, was deine Definition besagt:</p>
<pre><code class="language-cpp">cin.ignore(cin.rdbuf()-&gt;in_avail());
</code></pre>
<p>Problem: Er macht nicht das, was du willst, denn in_avail gibt nur die Anzahl der Zeichen zurück, die noch <strong>mindestens</strong> im Lesepuffer sind und das ist in den meisten Fällen 0, selbst bei copy&amp;paste. Ich fürchte, dein Problem ist so nicht lösbar.</p>
<p>Das tiefergehende Problem dabei ist folgendes:<br />
Wenn die Sequenz &quot;a\nb\nc\n&quot; eingetippt wird, dann trägt diese keinerlei Information darüber, <strong>wann</strong> die verschiedenen newlines getippt wurden. Für den stream sieht beides gleich aus: &lt;&quot;a\nb\nc\n&quot;&gt; = &lt;&quot;a\n&quot; Pause b\n&quot; Pause &quot;c\n&quot;&gt; denn der stream sieht wirklich nur die einzelnen Zeichen. Es wäre wahrscheinlich möglich, das von dir gewünschte umzusetzen, wenn man irgendetwas zeitgesteuertes verwendet, dann muss man aber wieder definieren, was das richtige Zeitintervall ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779046</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 15 Sep 2009 20:13:19 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 20:38:25 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das tiefergehende Problem dabei ist folgendes:<br />
Wenn die Sequenz &quot;a\nb\nc\n&quot; eingetippt wird, dann trägt diese keinerlei Information darüber, <strong>wann</strong> die verschiedenen newlines getippt wurden. Für den stream sieht beides gleich aus: &lt;&quot;a\nb\nc\n&quot;&gt; = &lt;&quot;a\n&quot; Pause b\n&quot; Pause &quot;c\n&quot;&gt; denn der stream sieht wirklich nur die einzelnen Zeichen. Es wäre wahrscheinlich möglich, das von dir gewünschte umzusetzen, wenn man irgendetwas zeitgesteuertes verwendet, dann muss man aber wieder definieren, was das richtige Zeitintervall ist.</p>
</blockquote>
<p>Naja, in irgendeiner Queue müssen die eingegebenen Zeichen ja gespeichert werden, und ich war (optimistischerweise) in der Annahme, das dies in std::streambuf geschehen könnte. Von dieser Seite betrachtet ist es also weniger eine Frage nach dem Zeitpunkt der Eingabe der Zeichen.</p>
<p>Mit Streams scheint das Problem also nicht lösbar zu sein. Gibt es vielleicht eine andere Möglichkeit mit C-Funktionen?<br />
Ich befürchte, dass oben genannte Zeichen-Queue im Tastaturtreiber realisiert wird. Wenn ich mein Problem also mit Treiberspielereien lösen würde, würde ich damit also systemweit alle Eingaben verarbeiten und nicht nur die, die für das Konsolenfenster bestimmt sind... hmm...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779063</guid><dc:creator><![CDATA[keiner]]></dc:creator><pubDate>Tue, 15 Sep 2009 20:38:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 21:05:50 GMT]]></title><description><![CDATA[<p>keiner schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Das tiefergehende Problem dabei ist folgendes:<br />
Wenn die Sequenz &quot;a\nb\nc\n&quot; eingetippt wird, dann trägt diese keinerlei Information darüber, <strong>wann</strong> die verschiedenen newlines getippt wurden. Für den stream sieht beides gleich aus: &lt;&quot;a\nb\nc\n&quot;&gt; = &lt;&quot;a\n&quot; Pause b\n&quot; Pause &quot;c\n&quot;&gt; denn der stream sieht wirklich nur die einzelnen Zeichen. Es wäre wahrscheinlich möglich, das von dir gewünschte umzusetzen, wenn man irgendetwas zeitgesteuertes verwendet, dann muss man aber wieder definieren, was das richtige Zeitintervall ist.</p>
</blockquote>
<p>Naja, in irgendeiner Queue müssen die eingegebenen Zeichen ja gespeichert werden, und ich war (optimistischerweise) in der Annahme, das dies in std::streambuf geschehen könnte. Von dieser Seite betrachtet ist es also weniger eine Frage nach dem Zeitpunkt der Eingabe der Zeichen.</p>
<p>Mit Streams scheint das Problem also nicht lösbar zu sein. Gibt es vielleicht eine andere Möglichkeit mit C-Funktionen?<br />
Ich befürchte, dass oben genannte Zeichen-Queue im Tastaturtreiber realisiert wird. Wenn ich mein Problem also mit Treiberspielereien lösen würde, würde ich damit also systemweit alle Eingaben verarbeiten und nicht nur die, die für das Konsolenfenster bestimmt sind... hmm...</p>
</blockquote>
<p>C Funktionen helfen auch nicht weiter. Ich habe mal versucht mittels</p>
<pre><code class="language-cpp">std::ios::sync_with_stdio(false);
</code></pre>
<p>die Art der Synchronisation zu ändern. Die Synchronisation erfolgt aber anscheinend immer bei den newlines, insofern nützt dies nichts, wenn man immer nur ganze Zeilen ausliest.</p>
<p>edit: Wenn man nur für ein bestimmtes Betriebssystem programmiert, kann man vielleicht noch was machen. Musste mal im passenden forum fragen, falls dies in Frage kommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779104</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 15 Sep 2009 21:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 21:55:15 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>C Funktionen helfen auch nicht weiter.</p>
</blockquote>
<p>Bist du sicher?</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich habe mal versucht mittels</p>
<pre><code class="language-cpp">std::ios::sync_with_stdio(false);
</code></pre>
<p>die Art der Synchronisation zu ändern. Die Synchronisation erfolgt aber anscheinend immer bei den newlines, insofern nützt dies nichts, wenn man immer nur ganze Zeilen ausliest.</p>
</blockquote>
<p>Wie hast du eigentlich herausgefunden, dass die Synchronisation bei newlines geschieht? Und wie genau soll mir die Art dieser bei meinem Problem helfen?</p>
<p>Ich versuche Mal mit fgets() und setvbuf() zu spielen, mit dem man die Art der Pufferung (zeilenweise, voll, gar nicht) einstellen kann.<br />
Ansonsten werde ich wohl einfach mit dem Problem leben müssen.</p>
<p>Trotzdem vielen Dank für deine Zeit!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779166</guid><dc:creator><![CDATA[keiner]]></dc:creator><pubDate>Tue, 15 Sep 2009 21:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Tue, 15 Sep 2009 22:47:07 GMT]]></title><description><![CDATA[<p>keiner schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>C Funktionen helfen auch nicht weiter.</p>
</blockquote>
<p>Bist du sicher?</p>
</blockquote>
<p>Nein. Aber ziemlich sicher, siehe unten.</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich habe mal versucht mittels</p>
<pre><code class="language-cpp">std::ios::sync_with_stdio(false);
</code></pre>
<p>die Art der Synchronisation zu ändern. Die Synchronisation erfolgt aber anscheinend immer bei den newlines, insofern nützt dies nichts, wenn man immer nur ganze Zeilen ausliest.</p>
</blockquote>
<p>Wie hast du eigentlich herausgefunden, dass die Synchronisation bei newlines geschieht?</p>
</blockquote>
<p>Nur mal schnell ausprobiert, was cin.rdbuf()-&gt;in_avail() zurückgibt, einmal mit std::ios::sync_with_stdio(false) und einmal ohne. Wenn man es nicht setzt, dann ist rdbuf()-&gt;in_avail() bei meiner implementierung nach jedem eingelesenen Zeichen 0. Wenn man es setzt, ist rdbuf()-&gt;in_avail() nach jedem eingelesenen newline 0. Das <strong>muss</strong> aber nicht unbedingt so sein, der Standard ist an der Stelle nicht sehr exakt, es könnte sein, dass du eine Implementierung findest, die es genauso macht, wie du willst. Aber was nützt das, wenn man sich nicht drauf verlassen kannst?</p>
<blockquote>
<p>Und wie genau soll mir die Art dieser bei meinem Problem helfen?</p>
</blockquote>
<p>Eigentlich hilft es nicht, weil es so auch nicht funktioniert. Aber so kannst du dir sparen, diesen Weg auszuprobieren. Und noch eine andere Sache: Das sync_with_stdio legt fest, ob die C++ streams mit den C streams synchronisiert werden. Wenn sie es werden (was die Standardeinstellung ist), dann hast du oben beschriebenes Verhalten. Daher die Vermutung, dass dir auch die C streams nicht weiterhelfen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779210</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 15 Sep 2009 22:47:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wie verwerfe ich bereits eingegebene Daten in std::istream? on Wed, 16 Sep 2009 00:07:16 GMT]]></title><description><![CDATA[<p>Also ich hab jetzt mal VS08 angeschmissen und mir dein Problem man näher angeschaut, und zur folgenden Überzeugung gekommen (ohne Gewähr):</p>
<p>Dein Problem ist nicht der cin-Buffer den musst du in jedem Fall c/p über die Konsole vollständig entgegennehmen da führt (AFIK) kein Weg vorbei, was eine Möglichkeit wäre (ich erinnere mich da noch DOS-Zeiten) das du Pipes anwendest, alles OS-Spezifisch natürlich, du wirst dieses Problem (AFIK) nicht mit der C++ Lib allein lösen können, da bleibt dir nur der Weg über die WinAPI oder was Systemspezifisches.</p>
<p>Meiner Meinung nach versuchst du bei der Problemlösung den zweiten Schritt vor dem Ersten zu machen. <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>
<p>Also ich würde folgendes Machen: Entkopple dein STDOUT-Pipe der Konsole mittels Win32API von der Konsole, verarbeite alle Eingaben von c/p, hänge dein STDOUT-Pipe der Konsole wieder auf die Konsole, und gib nur das was du willst aus.</p>
<p>Das habe ich selbst schon erfolgreich angewendet, allerdings handelte es sich hierbei um den Commando-Interpreter, wenn du es Mittels std::ios doch noch schaffen solltest, lass ich mich bitte wissen, würde mich auch interessieren.</p>
<p>Grüssle DC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779265</guid><dc:creator><![CDATA[DeepCopy]]></dc:creator><pubDate>Wed, 16 Sep 2009 00:07:16 GMT</pubDate></item></channel></rss>