<?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[struct speichern&#x2F;laden -&amp;gt;Fehler!]]></title><description><![CDATA[<p>Hi! Ich hab ein Problem, speichern scheint ja zu funktioneieren, allerdings das Laden macht probleme, sitze schon ca. 2 Tage an dem Problem. Wisst ihr wo der Fehler liegt?</p>
<p>Hier `nen bisschen Code:</p>
<p>Die Struct:</p>
<pre><code class="language-cpp">struct Info
{
AnsiString  spiel;
AnsiString  version;
AnsiString  typ;
AnsiString  autor;
int  groesse;
AnsiString  beschreibung;
AnsiString erweiterung;
};
</code></pre>
<p>Methoden:</p>
<pre><code class="language-cpp">int Unit::saveInfoToFile(char *datei)
{
//----Stream-initialisieren----
  ofstream ofl(datei, ios::out|ios::binary);
//----Fehler?----
  if(!ofl)
  {
    return 0;

  }
//----Schreiben----
  ofl.write((char*)info, sizeof(*info));
//----Stream-schließen----
  ofl.close();
//----Alles-OK----
  return 1;
}

int Unit::loadInfoFromFile(char *datei)
{
//----Stream-initialisieren----
  ifstream ifl(datei, ios::in|ios::binary);
//----Fehler?----
  if(!ifl)
  {
    return 0;
  }
//----Länge-bestimmen----
  unsigned int ende;
  ifl.seekg(0, ios::end);
  ende = ifl.tellg();
  ifl.seekg(0, ios::beg);
//----Daten-einlesen----
  info = new Info[ende/sizeof(Info)];
  ifl.read((char*)info, ende);
//----Stream-schließen----
  ifl.close();
//----Alles-OK----
  return 1;
}
</code></pre>
<p>thx <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183191/struct-speichern-laden-gt-fehler</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 23:39:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183191.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Jun 2007 16:38:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sat, 02 Jun 2007 16:41:45 GMT]]></title><description><![CDATA[<p>Hi! Ich hab ein Problem, speichern scheint ja zu funktioneieren, allerdings das Laden macht probleme, sitze schon ca. 2 Tage an dem Problem. Wisst ihr wo der Fehler liegt?</p>
<p>Hier `nen bisschen Code:</p>
<p>Die Struct:</p>
<pre><code class="language-cpp">struct Info
{
AnsiString  spiel;
AnsiString  version;
AnsiString  typ;
AnsiString  autor;
int  groesse;
AnsiString  beschreibung;
AnsiString erweiterung;
};
</code></pre>
<p>Methoden:</p>
<pre><code class="language-cpp">int Unit::saveInfoToFile(char *datei)
{
//----Stream-initialisieren----
  ofstream ofl(datei, ios::out|ios::binary);
//----Fehler?----
  if(!ofl)
  {
    return 0;

  }
//----Schreiben----
  ofl.write((char*)info, sizeof(*info));
//----Stream-schließen----
  ofl.close();
//----Alles-OK----
  return 1;
}

int Unit::loadInfoFromFile(char *datei)
{
//----Stream-initialisieren----
  ifstream ifl(datei, ios::in|ios::binary);
//----Fehler?----
  if(!ifl)
  {
    return 0;
  }
//----Länge-bestimmen----
  unsigned int ende;
  ifl.seekg(0, ios::end);
  ende = ifl.tellg();
  ifl.seekg(0, ios::beg);
//----Daten-einlesen----
  info = new Info[ende/sizeof(Info)];
  ifl.read((char*)info, ende);
//----Stream-schließen----
  ifl.close();
//----Alles-OK----
  return 1;
}
</code></pre>
<p>thx <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297240</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Sat, 02 Jun 2007 16:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sat, 02 Jun 2007 16:44:13 GMT]]></title><description><![CDATA[<p>Überleg dir mal was AnsiString ist und was passiert wenn du AnsiString einfach direkt in die Datei schreibst (das nennt sich eine &quot;flache Kopie&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297243</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sat, 02 Jun 2007 16:44:13 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sat, 02 Jun 2007 17:37:52 GMT]]></title><description><![CDATA[<p>und wie änder ich das am besten?<br />
ist z.B. wenn ich es in ein char array ändere, beim speichern eine tiefe kopie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297269</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Sat, 02 Jun 2007 17:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sat, 02 Jun 2007 18:29:28 GMT]]></title><description><![CDATA[<p>Ich vermute mal, dass die Bibliothek einen op&lt;&lt; für AnsiString mitliefert, in dem Fall kannst du einfach die Strings mit of1 &lt;&lt; my_ansistring in die Datei schreiben.<br />
Wahrscheinlich bietet die Klasse AnsiString auch eine Methode um auf das interne char-Array zuzugreifen, dann kannst du es auch sehr einfach mit write in die Datei schreiben (aber dann musst du auch die Größe mit abspeichern, deswegen wäre ein Textformat einfacher).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297308</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sat, 02 Jun 2007 18:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sat, 02 Jun 2007 20:54:07 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>AnsiString gehört zur VCL des Builders.<br />
Und ja die bietet auch die &lt;&lt; und &gt;&gt; Ops für Ansistring in std::stream an. Wie du die aktivieren kannst findest du in der Builder-Hilfe zu AnsiString.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297428</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 02 Jun 2007 20:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 07:58:01 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-2.html" rel="nofollow">VCL/CLX (Borland C++ Builder)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297555</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sun, 03 Jun 2007 07:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 10:17:09 GMT]]></title><description><![CDATA[<p>welchen typ nehme ich am besten um die struct direkt zu speichern (auch mit den strings)?</p>
<p>Das mit &quot;&lt;&lt;&quot; und so, erscheint mir imo etwas aufwändig... <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/1297601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297601</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Sun, 03 Jun 2007 10:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 10:35:24 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Dragonfire schrieb:</p>
<blockquote>
<p>welchen typ nehme ich am besten um die struct direkt zu speichern (auch mit den strings)?</p>
</blockquote>
<p>Theoretisch am einfachsten wäre es mit char[], also einem Array mit fester Dimension. Das hat natürlich auch nachteile :<br />
- Die Zeichenketten haben eine Maximal-Größe<br />
- Das Zusammenspiel mit AnsiString (zum Beispiel bei Kopieren in und aus VCL-Controls) ist umständlich<br />
Sowohl char* als auch AnsiString können nicht über die von dir benutzte Kopiermethode gespeichert werden.</p>
<blockquote>
<p>Das mit &quot;&lt;&lt;&quot; und so, erscheint mir imo etwas aufwändig... <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>
</blockquote>
<p>Was ist daran aufwendig? Du kannst sogar für dein struct die &lt;&lt; und &gt;&gt; Ops definieren, die nichts weiter machen als für die einzelnen Member die Aktion auszuführen.<br />
Wenn du nur wegen der Bequemlichkeit beim Laden/Speichern auf PODs fester Größe zurückgreift sparst du an der falschen Stelle, dafür wirst du dann in der Verarbeitung selber umständlich arbeiten müßen. Also benutzt lieber gleich durchgehend AnsiString.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297611</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 03 Jun 2007 10:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 10:45:00 GMT]]></title><description><![CDATA[<p>Hast du vllt. ein Beispiel wie das aussehen könnte, oder so ähnlich?</p>
<p>Was das Überladen von &quot;&lt;&lt;&quot; oder &quot;&gt;&gt;&quot; angeht bin ich noch nicht so fit... <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297620</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Sun, 03 Jun 2007 10:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 11:16:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<pre><code class="language-cpp">#include &lt;ostream&gt; // Wichtig : vor vcl.h!
#include &lt;vcl.h&gt;

struct Info
{
AnsiString  spiel;
AnsiString  version;
AnsiString  typ;
AnsiString  autor;
int  groesse;
AnsiString  beschreibung;
AnsiString erweiterung;
};	

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; stream, const Info&amp; info)
{
  stream &lt;&lt; info.spiel &lt;&lt; std::endl; // Zeilenumbruch als Trennzeichen
  stream &lt;&lt; info.version &lt;&lt; std::endl;
  ...
  stream &lt;&lt; info.erweiterung &lt;&lt; std::endl;
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297636</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 03 Jun 2007 11:16:47 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 08:40:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Z.Bsp. so</p>
<pre><code class="language-cpp">struct Info
{
AnsiString  spiel;
AnsiString  version;
AnsiString  typ;
AnsiString  autor;
int  groesse;
AnsiString  beschreibung;
AnsiString erweiterung;
};

ostream&amp; operator&lt;&lt;(ostream&amp; out, const Info&amp; value)
{
    out &lt;&lt; version &lt;&lt; &quot; &quot;;
    out &lt;&lt; typ &lt;&lt; &quot; &quot;;
    out &lt;&lt; autor &lt;&lt; &quot; &quot;;
    out &lt;&lt; groesse &lt;&lt; &quot; &quot;;
    out &lt;&lt; beschreibung &lt;&lt; &quot; &quot;;
    out &lt;&lt; erweiterung &lt;&lt; std:.endl;
    return out;
}
//---------------------------------------------------------------------------

istream&amp; operator&gt;&gt;(istream&amp; in, Info&amp; value)
{
    in &gt;&gt; version;
    in &gt;&gt; typ;
    in &gt;&gt; autor;
    in &gt;&gt; groesse;
    in &gt;&gt; beschreibung;
    in &gt;&gt; erweiterung;
    return in;
}
//---------------------------------------------------------------------------
</code></pre>
<p>[edit]War wohl etwas spät. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> [edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297643</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 08:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 11:46:49 GMT]]></title><description><![CDATA[<p>Gut...also hab ich jetzt:</p>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;(std::ostream&amp; stream, const Info&amp; info) 
{
  stream &lt;&lt; info.spiel.c_str() &lt;&lt; std::endl; // Zeilenumbruch als Trennzeichen
  stream &lt;&lt; info.version.c_str() &lt;&lt; std::endl;
  stream &lt;&lt; info.typ.c_str() &lt;&lt; std::endl;
  stream &lt;&lt; info.autor.c_str() &lt;&lt; std::endl;
  stream &lt;&lt; info.groesse &lt;&lt; std::endl;
  stream &lt;&lt; info.beschreibung.c_str() &lt;&lt; std::endl;
  stream &lt;&lt; info.erweiterung.c_str() &lt;&lt; std::endl;
}
</code></pre>
<p>und zum lesen:</p>
<pre><code class="language-cpp">int Unit::loadInfoFromFile(char *datei)
{
//----Stream-initialisieren----
  ifstream ifl(datei, ios::in|ios::binary);
//----Fehler?----
  if(!ifl)
  {
    return 0;
  }
//----Länge-bestimmen----
  unsigned int ende;
  ifl.seekg(0, ios::end);
  ende = ifl.tellg();
  ifl.seekg(0, ios::beg);
//----Daten-einlesen----
  //info = new Info[ende/sizeof(Info)];
  //ifl.read((char*)info, ende);
  ifl &gt;&gt; &amp;info;
//----Stream-schließen----
  ifl.close();
//----Alles-OK----
  return 1;
}
</code></pre>
<p>und die methode zum schreiben:</p>
<pre><code class="language-cpp">int Unit::saveInfoToFile(char *datei)
{
//----Stream-initialisieren----
  ofstream ofl(datei, ios::out|ios::binary);
//----Fehler?----
  if(!ofl)
  {
    return 0;

  }
//----Schreiben----
  //ofl.write((char*)info, sizeof(*info));
  ofl &lt;&lt; &amp;info;
//----Stream-schließen----
  ofl.close();
//----Alles-OK----
  return 1;
}
</code></pre>
<p>ist das so richtig, nebenbei (hab ich vllt. vergessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> ), info ist ein Array von Info...</p>
<p>Bekomm nämlich noch ne Fehlermeldung wenn ich auf das geladene struct zugreifen will.(ohne den operator &gt;&gt; zum einlesen)</p>
<p>Mit &gt;&gt; zum einlesen bekomm ich den Fehler beim compilieren:<br />
<strong>[C++ Fehler] Unit.cpp(222): E2015 Mehrdeutigkeit zwischen '_STL::basic_istream&lt;char,_STL::char_traits&lt;char&gt; &gt;::operator &gt;&gt;(bool &amp;)' und '_STL::basic_istream&lt;char,_STL::char_traits&lt;char&gt; &gt;::operator &gt;&gt;(void * &amp;)'</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297652</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Sun, 03 Jun 2007 11:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Sun, 03 Jun 2007 16:23:57 GMT]]></title><description><![CDATA[<p>Muss ich das struct vllt. serialisieren?<br />
Das musste zumindest in Java gemacht werden...<br />
Nur wie wird das hier realisiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297890</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Sun, 03 Jun 2007 16:23:57 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 08:43:59 GMT]]></title><description><![CDATA[<p>Du versuchst hier</p>
<pre><code class="language-cpp">ofl &lt;&lt; &amp;info;
</code></pre>
<p>ja auch eine Pointer zu schreiben (beim lesen genauso). Dein Operator ist aber für ein Objekt (Referenz darauf).<br />
Das hier sollte dann gehen.</p>
<pre><code class="language-cpp">ofl &lt;&lt; info;
</code></pre>
<p>PS.<br />
Das was du da machst nennt man serialisieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298239</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 08:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 14:06:18 GMT]]></title><description><![CDATA[<p>Aha! <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="😃"
    /><br />
Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Nur an der stelle</p>
<pre><code class="language-cpp">ifl &gt;&gt; info
</code></pre>
<p>liefert der compiler <strong>[C++ Fehler] Unit.cpp(222): E2015 Mehrdeutigkeit zwischen '_STL::basic_istream&lt;char,_STL::char_traits&lt;char&gt; &gt;::operator &gt;&gt;(bool &amp;)' und '_STL::basic_istream&lt;char,_STL::char_traits&lt;char&gt; &gt;::operator &gt;&gt;(void * &amp;)'</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298560</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 14:13:20 GMT]]></title><description><![CDATA[<p>Kann es sein, dass dein operator&lt;&lt; an dieser Stelle nicht bekannt ist? Sind die richtigen Header inkludiert? Kann es sein, dass info da ein Pointer ist?<br />
Du solltest übrigens das ios::binary bei deinen Streams weglassen. So wie du den operator geschrieben hast, arbeitet er im Textmodus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298568</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 14:27:08 GMT]]></title><description><![CDATA[<p>Also ich habe: #include &quot;fstream.h&quot; inkludiert.</p>
<p>Mir wäre lieber wenn der operator auch binär schreiben würde.</p>
<p>In meinem Prog. ist info ein Pointer, da es ein Array ist. (von struct Info)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298594</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:27:08 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 14:37:49 GMT]]></title><description><![CDATA[<p>Wenn es ein Pointer ist, mußt du dereferenzieren. Wenn es aber ein Array ist, kannst du ja auch mit [] auf das zu schreibende Element zugreifen.<br />
Vielleicht solltest du uns den korrekten Code zeigen wo der Fehler auftritt.</p>
<p>So wie dein operator&lt;&lt; aufgebaut ist schreibt er nicht binär, sondern im Textmodus. Das ist hier auch notwendig, um das Ende der Strings ordentlich zu kennzeichnen.<br />
Wenn du binär schreiben willst solltest du deiner struct die memberfunktionen read/write spendiern, die das dann übernehmen. Bei Streams sind die nämlich für binäre daten zuständig. Wenn du Strings binär schreiben willst, solltest du immer vorher die Länge mit abspeicher, damit du wieder ordentlich einlesen kannst.</p>
<p>fstream.h ist sowieso falsch. Wenn schon, dann #include &lt;fstream&gt;.<br />
das meinte ich hier aber gar nicht. Ich meinte den header, wo deine Operatoren&lt;&lt; und &gt;&gt; deklariert worden sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298604</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:37:49 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 14:57:00 GMT]]></title><description><![CDATA[<p>Also ich hatte mir vorgestellt es wie in java zu machen.</p>
<p>Aber nun gut,</p>
<blockquote>
<p>Wenn du binär schreiben willst solltest du deiner struct die memberfunktionen read/write spendiern, die das dann übernehmen. Bei Streams sind die nämlich für binäre daten zuständig.</p>
</blockquote>
<p>Wie sähen die Memberfunktionen aus?</p>
<blockquote>
<p>fstream.h ist sowieso falsch. Wenn schon, dann #include &lt;fstream&gt;</p>
</blockquote>
<p>Was ist der unterschied?</p>
<blockquote>
<p>Ich meinte den header, wo deine Operatoren&lt;&lt; und &gt;&gt; deklariert worden sind.</p>
</blockquote>
<p>Imo sind die mit in der cpp Datei, &quot;Unit.cpp&quot;.</p>
<p>Die Stelle des Fehlers ist:(Zeile 18)</p>
<pre><code class="language-cpp">int Unit::loadInfoFromFile(char *datei)
{
//----Stream-initialisieren----
  ifstream ifl(datei, ios::in|ios::binary);
//----Fehler?----
  if(!ifl)
  {
    return 0;
  }
//----Länge-bestimmen----
  unsigned int ende;
  ifl.seekg(0, ios::end);
  ende = ifl.tellg();
  ifl.seekg(0, ios::beg);
//----Daten-einlesen----
  //info = new Info[ende/sizeof(Info)];
  //ifl.read((char*)info, ende);
  ifl &gt;&gt; info;
//----Stream-schließen----
  ifl.close();
//----Alles-OK----
  return 1;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1298625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298625</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:57:00 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 15:17:20 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Wie sähen die Memberfunktionen aus?</p>
</blockquote>
<p>Da must du dir schon selber einen Kopf machen. Da du ja mit den AnsiStrings keine reine PODs mehr hast gibt es kein einfaches binäres Format mehr.</p>
<blockquote>
<p>Was ist der unterschied?</p>
</blockquote>
<p>Braunsteins Verbesserung zeigt den aktuellen C++ Standard</p>
<blockquote>
<p>Imo sind die mit in der cpp Datei, &quot;Unit.cpp&quot;.</p>
</blockquote>
<p>Vermutlich aber erst nachdem Aufruf in loadInfoFromFile?<br />
Du must die Op-Deklaration (und nur die Deklaration, nicht die Implementatio) auch in die Unit.h schreiben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298647</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 15:24:21 GMT]]></title><description><![CDATA[<p>Dragonfire schrieb:</p>
<blockquote>
<p>Wie sähen die Memberfunktionen aus?</p>
</blockquote>
<p>so etwa</p>
<pre><code class="language-cpp">ostream&amp; Info::write(ostream&amp; out) const
{
    int strsize =  spiel.Length();
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(spiel().c_str(), strsize+1);
// usw.
}

istream&amp; Info::read(istream&amp;  in)
{
    int strsize;
    in.read(reinterpret_cast&lt;char*&gt;(&amp;strsize), sizeof(strsize));
    char* tstr = new char[strsize+1];
    in.read(tstr, strsize+1);
    delete[] tstr;
// usw.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1298651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298651</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 15:27:38 GMT]]></title><description><![CDATA[<blockquote>
<p>Da must du dir schon selber einen Kopf machen. Da du ja mit den AnsiStrings keine reine PODs mehr hast gibt es kein einfaches binäres Format mehr.</p>
</blockquote>
<p>Die AnsiString müssen nicht sein, man kann ja auch char[] verwenden, nötigenfalls mit begrenzung, z.B. char[255].</p>
<blockquote>
<p>Braunsteins Verbesserung zeigt den aktuellen C++ Standard</p>
</blockquote>
<p>Aha <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="😃"
    /></p>
<blockquote>
<p>Du must die Op-Deklaration (und nur die Deklaration, nicht die Implementatio) auch in die Unit.h schreiben.</p>
</blockquote>
<p>Hab ich gemacht (ich dummi^^).<br />
Nun bekomm ich folgende Meldung:</p>
<p><strong>[C++ Fehler] CraGine.h(42): E2080 'Unit::operator &lt;&lt;(ostream,const Info)' muß mit einem Parameter deklariert werden</strong></p>
<p>thx nochmal für die Mühen <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="😃"
    /></p>
<p>[EDIT]Oh zuspät...Danke <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="😃"
    /> , ich probiers gleich mal aus.[/EDIT]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298652</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 15:38:23 GMT]]></title><description><![CDATA[<p>Die Deklaration sollte so aussehen</p>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;(std::ostream&amp; stream, const Info&amp; info);
</code></pre>
<p>Natürlich muß Info zu diesem Zeitpunkt bekannt sein. Es ist sowieso am besten die Operation im selben headerfile wie die Klasse zu deklarieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298668</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:38:23 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 15:50:42 GMT]]></title><description><![CDATA[<p>so bin jetzt soweit:</p>
<p>#unit.cpp#</p>
<pre><code>...
ostream&amp; Info::write(ostream&amp; out) const
{ 
    int strsize =  spiel.Length(); 
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(spiel().c_str(), strsize+1);

    strsize = version.Length();
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(version().c_str(), strsize+1);

    strsize = typ.Length();
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(typ().c_str(), strsize+1);

    strsize = autor.Length();
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(autor().c_str(), strsize+1);

    strsize = beschreibung.Length();
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(beschreibung().c_str(), strsize+1);

    strsize = erweiterung.Length();
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(erweiterung().c_str(), strsize+1);

    strsize = sizeof(groesse);
    out.write(reinterpret_cast&lt;const char*&gt;(&amp;strsize), sizeof(strsize));
    out.write(groesse, strsize+1);
}
</code></pre>
<p>Bei:</p>
<pre><code>istream&amp; Info::read(istream&amp;  in)
{
    int strsize;
    in.read(reinterpret_cast&lt;char*&gt;(&amp;strsize), sizeof(strsize));
    char* tstr = new char[strsize+1];
    in.read(tstr, strsize+1);
    delete[] tstr;
// usw.    
}
</code></pre>
<p>Was bedeutet/was ist hier: tstr?</p>
<p>#unit.h#</p>
<pre><code>...
ostream&amp; write(ostream&amp;) const;
istream&amp; read(istream&amp;);
</code></pre>
<p>trotzdem kennt er die Methoden in der cpp datei nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298684</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 16:23:09 GMT]]></title><description><![CDATA[<p>tstr ist nur ein temporärer String. Ich hatte da vergessen den eingelesenen Inhalt zu übertragen.<br />
So wäre es richtig.</p>
<pre><code class="language-cpp">istream&amp; Info::read(istream&amp;  in)
{
    int strsize;
    in.read(reinterpret_cast&lt;char*&gt;(&amp;strsize), sizeof(strsize));
    char* tstr = new char[strsize+1];
    in.read(tstr, strsize+1);
    spiel = tstr;
    delete[] tstr;
// usw.    
}
</code></pre>
<p>Beim write oben müssen die Klammern nach spiel usw. weg. (auch mein Fehler).<br />
Die Deklarationen von read und write gehören in deine Info-Klasse.<br />
Bitte versuche mal zu verstehen was das bedeutet. Dann mußt du auch nicht mehr so viel fragen und findest deartige Fehler selber.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298712</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 16:23:09 GMT</pubDate></item><item><title><![CDATA[Reply to struct speichern&#x2F;laden -&amp;gt;Fehler! on Mon, 04 Jun 2007 17:00:44 GMT]]></title><description><![CDATA[<p>Gut <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="😃"
    /> Mach ich.</p>
<p>Nur bin ich im speichern auf Festplatte in C++ nicht so fit^^.</p>
<p>Nur habe ich immer noch die Fehlermeldung:</p>
<p><strong>[C++ Fehler] Unit.cpp(222): E2015 Mehrdeutigkeit zwischen '_STL::basic_istream&lt;char,_STL::char_traits&lt;char&gt; &gt;::operator &gt;&gt;(bool &amp;)' und '_STL::basic_istream&lt;char,_STL::char_traits&lt;char&gt; &gt;::operator &gt;&gt;(void * &amp;)'</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298738</guid><dc:creator><![CDATA[Dragonfire]]></dc:creator><pubDate>Mon, 04 Jun 2007 17:00:44 GMT</pubDate></item></channel></rss>