<?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[Vector (Objekt) in Binär datei schreiben]]></title><description><![CDATA[<p>servus ich hab da ein klitzekleines problemchen,<br />
ich hab einen vector bsp. vector&lt;Team&gt;Teamtable das sind fein säublerlich<br />
abgespeichert.<br />
1x string und 5x ints<br />
das heisst ich kann schön auf den vector zugreifen mit .. bsp.<br />
ner forschleife und schreiben Teamtable[i].getTeamName() damit ich an die werte komme</p>
<p>nun kann ich bsp eine txt-datei schreiben mit ner funktion</p>
<pre><code class="language-cpp">ostream&amp; Table::write(std::ostream &amp;os) 
{
for.....blabla
 os&lt;&lt;this-&gt;Teamtable[i].getTeamName();
 os&lt;&lt;this-&gt;Teamtable[i].getMatchesPlayed();
 ... 

return os;
}
</code></pre>
<p>und er schreibt das in meine schön txt datei<br />
jetzt brauch ich aber eine binär datei<br />
das heisst also in der form</p>
<pre><code class="language-cpp">ostream&amp; Table::binWrite(std::ostream&amp; os)
{
 os&lt;&lt;teamName&lt;&lt;'\0'; 
 os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesPlayed), 5*sizeof(int)); 
// geht nicht weil matchesPlayed privatattribut ist , müsste normal 
//mit funktion zugreifen , das geht aber auch net oder weiss net wie .. also wie gehts? weil (&amp;getMatchesPlayed() ) geht net
//oder dergleichen nur leider wie geb ich den vector dahin als adresse, 
//hab wohl problem mit der adressierung..
}
</code></pre>
<p>wäre dankbar für Rat und Tat</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181235/vector-objekt-in-binär-datei-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 08:21:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181235.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 May 2007 10:48:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector (Objekt) in Binär datei schreiben on Fri, 11 May 2007 10:48:18 GMT]]></title><description><![CDATA[<p>servus ich hab da ein klitzekleines problemchen,<br />
ich hab einen vector bsp. vector&lt;Team&gt;Teamtable das sind fein säublerlich<br />
abgespeichert.<br />
1x string und 5x ints<br />
das heisst ich kann schön auf den vector zugreifen mit .. bsp.<br />
ner forschleife und schreiben Teamtable[i].getTeamName() damit ich an die werte komme</p>
<p>nun kann ich bsp eine txt-datei schreiben mit ner funktion</p>
<pre><code class="language-cpp">ostream&amp; Table::write(std::ostream &amp;os) 
{
for.....blabla
 os&lt;&lt;this-&gt;Teamtable[i].getTeamName();
 os&lt;&lt;this-&gt;Teamtable[i].getMatchesPlayed();
 ... 

return os;
}
</code></pre>
<p>und er schreibt das in meine schön txt datei<br />
jetzt brauch ich aber eine binär datei<br />
das heisst also in der form</p>
<pre><code class="language-cpp">ostream&amp; Table::binWrite(std::ostream&amp; os)
{
 os&lt;&lt;teamName&lt;&lt;'\0'; 
 os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesPlayed), 5*sizeof(int)); 
// geht nicht weil matchesPlayed privatattribut ist , müsste normal 
//mit funktion zugreifen , das geht aber auch net oder weiss net wie .. also wie gehts? weil (&amp;getMatchesPlayed() ) geht net
//oder dergleichen nur leider wie geb ich den vector dahin als adresse, 
//hab wohl problem mit der adressierung..
}
</code></pre>
<p>wäre dankbar für Rat und Tat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282919</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Fri, 11 May 2007 10:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vector (Objekt) in Binär datei schreiben on Fri, 11 May 2007 10:57:11 GMT]]></title><description><![CDATA[<p>dann speicher das ergebnis von getMatchesPlayed() erst in eine lokale variable</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282927</guid><dc:creator><![CDATA[.......]]></dc:creator><pubDate>Fri, 11 May 2007 10:57:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vector (Objekt) in Binär datei schreiben on Fri, 11 May 2007 11:20:55 GMT]]></title><description><![CDATA[<p>Edit: quark<br />
Edit2: machs doch einfach genauso weiter, wie du angenfangen hast. Ruf für jedes Element der TeamTable einfach eine <strong>Methode</strong> zum speichern auf.</p>
<pre><code class="language-cpp">ostream&amp; Table::binWrite(std::ostream&amp; os)
{
 for blabla
   this-&gt;Teamtable[i].Save(os);
}
</code></pre>
<p>Die Methode weiss dann was zu tun ist und hat keine Einschraenkungen beim Zugriff.</p>
<p>Gruss,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282944</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Fri, 11 May 2007 11:20:55 GMT</pubDate></item><item><title><![CDATA[Reply to Vector (Objekt) in Binär datei schreiben on Sat, 12 May 2007 10:39:16 GMT]]></title><description><![CDATA[<p>DeSoVoDaMu schrieb:</p>
<blockquote>
<p>Edit: quark<br />
Edit2: machs doch einfach genauso weiter, wie du angenfangen hast. Ruf für jedes Element der TeamTable einfach eine <strong>Methode</strong> zum speichern auf.</p>
<pre><code class="language-cpp">ostream&amp; Table::binWrite(std::ostream&amp; os)
{
 for blabla
   this-&gt;Teamtable[i].Save(os);
}
</code></pre>
<p>Die Methode weiss dann was zu tun ist und hat keine Einschraenkungen beim Zugriff.</p>
<p>Gruss,<br />
DeSoVoDaMu</p>
</blockquote>
<pre><code>this-&gt;Teamtable[i].Save(os);
</code></pre>
<p>ist das binär? sieht nicht danach aus (ist .Save(os) eine std:-methode?)</p>
<p>os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesPlayed), 5<em>sizeof(int));<br />
ist binär schreiben ,d.h. das os.write, sie ist funktion dafür,<br />
&amp;matchesPlayed ist die adresse des startes und 5</em>sizeof(int) ist die platzbelegung das nur 5 weitere int-werte kommen...</p>
<blockquote>
<p>unregistrierter:<br />
dann speicher das ergebnis von getMatchesPlayed() erst in eine lokale variable</p>
</blockquote>
<p>das hatte ich probiert aber er schrieb falsch..in die datei.. weiss net warum. hatte bsp alle getfunktionen benutzt in der form</p>
<pre><code class="language-cpp">for....blabla{
teamnamevalue=this-&gt;Teamtable[i].getTeamName(); 
 matchesvalue=Teamtable[i].getMatchesPlayed();}
.. andere ints in lokalevariablen...
danach hatte ich geschrieben
 os&lt;&lt;teamName&lt;&lt;'\0'; 
 os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesvalue), 5*sizeof(int));
</code></pre>
<p>nun hatte er die datei zwar geschrieben aber nur teamname und matchedPlayed richtig die anderen hatte er falsch. von daher glaube ich er braucht den vector als zusammenhängenden speicher damit er weis was als nächste folgt .. der<br />
compiler wird mit den anderen lokalen variable nichts anfangen können weil sie net zusammenhängend sind (wegen 5*sizeof(int)) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> is eine vermutung , wissen tue ichs net. hmm <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1283355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1283355</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Sat, 12 May 2007 10:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to Vector (Objekt) in Binär datei schreiben on Sat, 12 May 2007 23:02:09 GMT]]></title><description><![CDATA[<p>Das sollte einfach nur die Herangehensweise verdeutlichen. Die Save-Methode musst du natuerlich selbst implementieren.</p>
<pre><code class="language-cpp">void Team::Save(std::ostream os)
{
  os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesPlayed), sizeof(matchesPlayed));
  .
  .
}

ostream&amp; Table::write(std::ostream &amp;os)
{
for.....blabla
  this-&gt;Teamtable[i].Save(os);
  .
  .

return os;
}
</code></pre>
<p>Innerhalb von Team hast du ja freien Zugriff auf die eigenen Membervariablen.</p>
<p>Gruss,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1283784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1283784</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Sat, 12 May 2007 23:02:09 GMT</pubDate></item><item><title><![CDATA[Reply to Vector (Objekt) in Binär datei schreiben on Mon, 14 May 2007 13:27:24 GMT]]></title><description><![CDATA[<p>[quote=&quot;DeSoVoDaMu&quot;]Das sollte einfach nur die Herangehensweise verdeutlichen. Die Save-Methode musst du natuerlich selbst implementieren.</p>
<pre><code class="language-cpp">void Team::Save(std::ostream os)
{
  os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesPlayed), sizeof(matchesPlayed));
  .
  .
}
</code></pre>
<p>SUPER!!<br />
dankeee hat gefunzt mit</p>
<pre><code class="language-cpp">void Team::save(std::ostream &amp;os)
{ 
	os&lt;&lt;teamName&lt;&lt;'\0';
	os.write(reinterpret_cast&lt;char*&gt;(&amp;matchesPlayed),5*sizeof(int)); 
	//5* int wegen der datenstruktur 
}
</code></pre>
<p>man is echt blöd manchmal, weil ich eigentlich das selbe schon mit auslesen gemacht habe. . aber wenn man auf den schlauch hockt gibs immer noch das c++ forum <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="😃"
    /> also danke nochmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1284659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1284659</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Mon, 14 May 2007 13:27:24 GMT</pubDate></item></channel></rss>