<?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[C++ stdout-Weiche]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern in C++ eine stdout Weiche schreiben. Wenn mein Programm ohne Parameter aufgerufen wird, soll alles auf std::cout geschrieben werden. Bei einem Parameter, soll der Parameter der Dateiname sein, in die alles geschrieben werden soll.</p>
<p>Nur weiß ich nicht, wie das am besten geht. Ich muss irgendwie ostream entweder nach cout oder in eine Datei umleiten...</p>
<pre><code class="language-cpp">std::ostream &amp;ostr;
if(argc == 2) {
  ostr = std::cout;
} else {
  ostr.open(argv[2]);
}
</code></pre>
<p>Kann wer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184596/c-stdout-weiche</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 20:19:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184596.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Jun 2007 09:46:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ stdout-Weiche on Sun, 17 Jun 2007 09:46:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern in C++ eine stdout Weiche schreiben. Wenn mein Programm ohne Parameter aufgerufen wird, soll alles auf std::cout geschrieben werden. Bei einem Parameter, soll der Parameter der Dateiname sein, in die alles geschrieben werden soll.</p>
<p>Nur weiß ich nicht, wie das am besten geht. Ich muss irgendwie ostream entweder nach cout oder in eine Datei umleiten...</p>
<pre><code class="language-cpp">std::ostream &amp;ostr;
if(argc == 2) {
  ostr = std::cout;
} else {
  ostr.open(argv[2]);
}
</code></pre>
<p>Kann wer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307549</guid><dc:creator><![CDATA[cppgast]]></dc:creator><pubDate>Sun, 17 Jun 2007 09:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to C++ stdout-Weiche on Sun, 17 Jun 2007 10:04:55 GMT]]></title><description><![CDATA[<p>du musst den buffer von cout ersetzen:</p>
<pre><code class="language-cpp">streambuf* bufferSaver=NULL;
if(argc == 2) {
  filebuf* buffer=new filebuf;//datei buffer erstellen
  buffer-&gt;open(argv[2]);//datei öffnen
  bufferSaver=cout.rdbuf(buffer);//buffer von cout ersetzen, alten buffer sichern(wichtig)
}
//hier kannst du dann cout ganz normal nutzen.

//am Ende, oder immer dann, wenn du wieder in die console ausgeben willst
if(bufferSaver!=NULL)
{
    bufferSaver=cout.rdbuf(bufferSaver);//wieder zurücktauschen
    delete bufferSaver;//datei buffer wieder löschen
}
</code></pre>
<p>dieser sichern und umtauschen ist wichtig, damit auch der ursprüngliche buffer von cout wieder ordnungsgemäß gelöscht werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307552</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sun, 17 Jun 2007 10:04:55 GMT</pubDate></item></channel></rss>