<?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[Umlenkoperator soll sofort schreiben]]></title><description><![CDATA[<p>Ich habe das Problem, dass ich in eine Datei schreiben möchte, aber die zu schreibenden Objekte am Ende des Zeigers gelöscht werden:</p>
<pre><code>boost::filesystem::ofstream datei(dateiname.str()); 
  boost::archive::xml_oarchive Archivdatei(datei);
</code></pre>
<p>Nun schreibe ich in die Datei mit dem Umlenkoperator:</p>
<pre><code>ArchivDaten* AD = new ArchivDaten();
  Archivdatei &lt;&lt; boost::serialization::make_nvp(&quot;ArchivDaten&quot;, AD);
</code></pre>
<p>Eigentlich ist es mir recht, dass die Datei erst später am Ende des Programms wirklich auf die physische Platte geschrieben wird, aber sie sollte wenigstens im Speicher stehen. Momentan ist das leider nicht der Fall, da es sich bei AD um einen Zeiger handelt und das Objekt bald danach gelöscht wird. Jedenfalls ist die Ausgabe eindeutig, teilweise fehlen Daten!<br />
Warum wird denn das Objekt nicht sofort in diesen Ausgabestream gesteckt (auch wenn es später erst auf die Platte geschrieben wird)?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294078/umlenkoperator-soll-sofort-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 00:12:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294078.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Oct 2011 10:46:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 10:46:42 GMT]]></title><description><![CDATA[<p>Ich habe das Problem, dass ich in eine Datei schreiben möchte, aber die zu schreibenden Objekte am Ende des Zeigers gelöscht werden:</p>
<pre><code>boost::filesystem::ofstream datei(dateiname.str()); 
  boost::archive::xml_oarchive Archivdatei(datei);
</code></pre>
<p>Nun schreibe ich in die Datei mit dem Umlenkoperator:</p>
<pre><code>ArchivDaten* AD = new ArchivDaten();
  Archivdatei &lt;&lt; boost::serialization::make_nvp(&quot;ArchivDaten&quot;, AD);
</code></pre>
<p>Eigentlich ist es mir recht, dass die Datei erst später am Ende des Programms wirklich auf die physische Platte geschrieben wird, aber sie sollte wenigstens im Speicher stehen. Momentan ist das leider nicht der Fall, da es sich bei AD um einen Zeiger handelt und das Objekt bald danach gelöscht wird. Jedenfalls ist die Ausgabe eindeutig, teilweise fehlen Daten!<br />
Warum wird denn das Objekt nicht sofort in diesen Ausgabestream gesteckt (auch wenn es später erst auf die Platte geschrieben wird)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132457</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Mon, 17 Oct 2011 10:46:42 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 11:27:30 GMT]]></title><description><![CDATA[<p>Probier mal ein <code>datei &lt;&lt; std::flush</code> , nachdem Du mit dem Serialisieren fertig bist. Es könnte sein, dass der Stream gepuffert ist, und dann wird erst beim Flush bzw. beim Schließen in die Datei geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132479</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 17 Oct 2011 11:27:30 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 11:31:05 GMT]]></title><description><![CDATA[<p>fabske schrieb:</p>
<blockquote>
<p>Umlenkoperator:</p>
</blockquote>
<p>Woher hast du den Namen? Ausgedacht? Den Namen gibts nicht wirklich, und wenn, dann ist er höchst unüblich. Das Ding nennt sich shift-Operator, vielleicht auch noch (o)stream-Operator oder Ausgabe-Operator (auch nicht gerade üblich, aber man verstehts noch). Umlenkoperator klingt irgendwie blödsinnig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132484</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 17 Oct 2011 11:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 11:36:51 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>fabske schrieb:</p>
<blockquote>
<p>Umlenkoperator:</p>
</blockquote>
<p>Woher hast du den Namen? Ausgedacht? Den Namen gibts nicht wirklich, und wenn, dann ist er höchst unüblich. Das Ding nennt sich shift-Operator, vielleicht auch noch (o)stream-Operator oder Ausgabe-Operator (auch nicht gerade üblich, aber man verstehts noch). Umlenkoperator klingt irgendwie blödsinnig...</p>
</blockquote>
<p>Das klingt nach einem übereifrigen Übersetzer eines englischen Buches.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132487</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Oct 2011 11:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 12:51:41 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das klingt nach einem übereifrigen Übersetzer eines englischen Buches.</p>
</blockquote>
<p>Wobei &quot;to shift&quot; mit &quot;umlenken&quot; zu übersetzen auch ziemlich daneben ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132519</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 17 Oct 2011 12:51:41 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 13:31:02 GMT]]></title><description><![CDATA[<p>Zunächst mal scheint es eine Verwechlung mit dem &lt; aus der shell zu sein, mit dem man die Standardeingabe auf eine Dateilesung &quot;umlenken&quot;(?) kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132542</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 17 Oct 2011 13:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 21:36:07 GMT]]></title><description><![CDATA[<p>Ich denke ich habe es von der Shell <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":-D"
      alt="😃"
    /> Umlenkoperator habe ich da wohl mal gelernt..</p>
<p>Also datei &lt;&lt; std::flush ist keine Lösung! Das ist genau was ich nicht will, dass er sofort auf die Platte schreibt. Ich möchte dass es gepuffert wird, aber eben sofort gepuffert und nicht erst später.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132683</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Mon, 17 Oct 2011 21:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Mon, 17 Oct 2011 22:04:31 GMT]]></title><description><![CDATA[<p>Funktioniert es denn mit flush? Ich bin gerade sehr überrascht, dass es ohne Fehler gibt. Ich kenne boost::serialization jetzt nicht so gut, aber das wäre doch ein sehr ungewöhnliches Design, daher vermute ich den Fehler anderswo.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132698</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Oct 2011 22:04:31 GMT</pubDate></item><item><title><![CDATA[Reply to Umlenkoperator soll sofort schreiben on Thu, 20 Oct 2011 11:52:52 GMT]]></title><description><![CDATA[<p>Mit flush schreibt er schneller in die Datei, aber mein Problem ist dadurch nicht behoben. Ich dachte ich könnte folgenden Sachverhalt damit erschlagen:<br />
<a href="http://www.c-plusplus.net/forum/p2133668#2133668" rel="nofollow">http://www.c-plusplus.net/forum/p2133668#2133668</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2133670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2133670</guid><dc:creator><![CDATA[fabske]]></dc:creator><pubDate>Thu, 20 Oct 2011 11:52:52 GMT</pubDate></item></channel></rss>