<?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[stream filtern]]></title><description><![CDATA[<p>hallo,</p>
<p>gibt es eine möglichkeit einen stream (zb ostringstream) zeichenweise zu filtern?<br />
ich will immer dann wenn ein std::endl im stream auftaucht die daten weiterreichen und den streambuffer leeren, und zwar sofort wenn das std::endl geschrieben wird.<br />
konkret geht es darum das cout mit rdbuf() auf einen eigenen stream umgebogen wurde und ich die eingehenden daten unmittelbar weiterverarbeiten will. also nicht irgendwann später mit .str() rumfummeln.</p>
<p>wie geht das? helfen hier traits weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186469/stream-filtern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 08:45:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186469.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Jul 2007 11:42:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stream filtern on Mon, 09 Jul 2007 11:42:50 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>gibt es eine möglichkeit einen stream (zb ostringstream) zeichenweise zu filtern?<br />
ich will immer dann wenn ein std::endl im stream auftaucht die daten weiterreichen und den streambuffer leeren, und zwar sofort wenn das std::endl geschrieben wird.<br />
konkret geht es darum das cout mit rdbuf() auf einen eigenen stream umgebogen wurde und ich die eingehenden daten unmittelbar weiterverarbeiten will. also nicht irgendwann später mit .str() rumfummeln.</p>
<p>wie geht das? helfen hier traits weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321431</guid><dc:creator><![CDATA[zzZz]]></dc:creator><pubDate>Mon, 09 Jul 2007 11:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to stream filtern on Mon, 09 Jul 2007 11:48:21 GMT]]></title><description><![CDATA[<p>Was meinst du mit umgeleitet?</p>
<p>endl taucht bestimmt nicht im Stream selber auf. Das ist ein Manipulator, der erst ein '\n' schreibt und anschließend den Streambuffer flusht (was bewirkt, daß die Daten aus dem internen Zwischenspeicher weitergeschickt werden an denjenigen, der sie verarbeiten will (bei cout normalerweise der Monitor, bei einem fstream die Festplatte etc)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321438</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 Jul 2007 11:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to stream filtern on Mon, 09 Jul 2007 11:55:18 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Was meinst du mit umgeleitet?</p>
</blockquote>
<pre><code class="language-cpp">std::ostringstream mycout;
std::cout.rdbuf(mycout.rdbuf());  // cout schreibt ab sofort in mycout

std::cout &lt;&lt; &quot;hello&quot; &lt;&lt; std::endl;  // 1
std::cout &lt;&lt; &quot;world&quot; &lt;&lt; std::endl;  // 2

whatever(mycout.str());  // str()==&quot;hello\nworld\n&quot;
</code></pre>
<p>ich will bei markierung 1 und markierung 2 &quot;automatisch&quot; benachrichtigt werden das was in den stream geschrieben wurde, so dass ich mir den expliziten aufruf von whatever sparen kann und darf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321449</guid><dc:creator><![CDATA[zzZzZ]]></dc:creator><pubDate>Mon, 09 Jul 2007 11:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to stream filtern on Mon, 09 Jul 2007 12:09:12 GMT]]></title><description><![CDATA[<p>Da müsstest du vermutlich einen speziellen Stream-Buffer schreiben, und dort Methode <code>virtual int sync();</code> (die wird immer dann aufgerufen, wenn der übergeordnete Stream einen flush auslöst) überschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321462</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 Jul 2007 12:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to stream filtern on Mon, 09 Jul 2007 13:16:09 GMT]]></title><description><![CDATA[<p>funktioniert, danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321522</guid><dc:creator><![CDATA[zZzZZ]]></dc:creator><pubDate>Mon, 09 Jul 2007 13:16:09 GMT</pubDate></item></channel></rss>