<?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[Containerklassen in Binärdatei schreiben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Struktur mit Vectoren und Strings in eine BINÄR- Datei schreiben. Da &quot;ofstream.write(...)&quot; nur die Pointer in die Datei schreibt suche ich nun einen Weg dieses zu umgehen. Hat jemand eine Idee???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142850/containerklassen-in-binärdatei-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 01:09:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142850.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Apr 2006 13:22:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 13:22:27 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Struktur mit Vectoren und Strings in eine BINÄR- Datei schreiben. Da &quot;ofstream.write(...)&quot; nur die Pointer in die Datei schreibt suche ich nun einen Weg dieses zu umgehen. Hat jemand eine Idee???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029668</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 03 Apr 2006 13:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 14:31:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>write schreibt was immer du angibst, nicht nur Pointer.<br />
Das hier schreibt eine string in eine Datei</p>
<pre><code class="language-cpp">string test(&quot;Hallo&quot;);
ofstream out(&quot;test.dat&quot;,ios::binary);
out.write(test.c_str(), test.size());
</code></pre>
<p>Bei string sollte man vorher auch die Länge mit abspeichern damit man sie wieder ordnungsgemäß einlesen kann.<br />
Bei Vektoren schreibt man die Inhalte raus (z.Bsp. über eine Schleife). Wie das nun geschieht, hängt davon ab, was in deinen Vektoren drin ist.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029718</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 03 Apr 2006 14:31:51 GMT</pubDate></item><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 15:25:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei einem einzelnen String mag das ja sein, nicht aber bei einer Struktur mit einem Element vom Typ string. In diesem Falle wird nur der Zeiger auf das String- Element der Struktur rausgeschrieben, d.H. nach Programmende sind die Daten weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029761</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 03 Apr 2006 15:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 15:46:40 GMT]]></title><description><![CDATA[<p>Kurze Antwort: Dann schreibe nicht den Zeiger sondern dereferenzier ihn.</p>
<p>Lange Antwort:<br />
Du brauchst ein Datenformat für mindestens die variablen Sachen (und strings sind nunmal variabel lang). Wenn Du alle Werte mit konstanter Länge direkt binär schreibst, und für Strings und andere Objekte variabler Länge eine Konvention (z.B. ein Byte länge, dann der variabel lange String) hast, musst Du die nur noch ins Programm gießen (was fertiges gibts dafür nicht).</p>
<p>Also, sinngemäß</p>
<pre><code class="language-cpp">out.write(&amp;strukturFesterLaenge, sizeof(strukturFesterLaenge));

int length = string1.size();
out.write(&amp;length, sizeof(int));
out.write(string1.c_str(), length);

/* ... */
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1029768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029768</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 03 Apr 2006 15:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 15:55:29 GMT]]></title><description><![CDATA[<p>Im Fall von structs würde ich denen einfach eine read und write Funktion spendieren, welche den stream übernimmt und die dann bei Bedarf aufrufen.</p>
<pre><code class="language-cpp">struct test
{
   int a;
   string h;
   ostream&amp; write(ostream&amp; out);
   istream&amp; read(istream&amp; in);
};
// dann noch implementieren
ostream&amp; write(ostream&amp; out)
{
   out.write(reinterpret_cast&lt;const char*&gt;(&amp;a), sizeof(a));
   int s = h.size();
   out.write(reinterpret_cast&lt;const char*&gt;(&amp;s), sizeof(s));
   out.write(h.c_str(), s);
}
// usw.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1029772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029772</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 03 Apr 2006 15:55:29 GMT</pubDate></item><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 16:10:18 GMT]]></title><description><![CDATA[<p>Auf gut deutsch heisst das, ich kann die Struktur nicht direkt rausschreiben??<br />
Ist ja ein Riesenstress, da ich einen ganzen haufen vectoren und strings habe, und ich bin sehr sehr Schreibfaul.<br />
Irgendeinen Weg muss es doch geben!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Bin für jeden Vorschlag dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029778</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 03 Apr 2006 16:10:18 GMT</pubDate></item><item><title><![CDATA[Reply to Containerklassen in Binärdatei schreiben on Mon, 03 Apr 2006 17:01:19 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/libs/serialization/doc/index.html" rel="nofollow">http://www.boost.org/libs/serialization/doc/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029807</guid><dc:creator><![CDATA[ffffffffffff]]></dc:creator><pubDate>Mon, 03 Apr 2006 17:01:19 GMT</pubDate></item></channel></rss>