<?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[Daten aus Klassen in Dateien schreiben]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich habe schon viel in Foren gesucht und mich in verschiedenen Büchern zu diesem Thema eingelesen. Aber ich komme nicht weiter und bräuchte vielleicht mal einen Tip.</p>
<p>Folgendes Problem:<br />
Ich habe mehrere Klassen in denen ich in den Private Bereich Daten über Funktionen hineingebe. Diese Daten beziehen sich auf verschiedene Bauteile die ich mit Werten abspeichern möchte.</p>
<p>In einer Gesamtklasse rufe ich die einzelnen Klassen auf um sowas wie eine gesamte Struktur zu bilden, da ich diese Daten als eine Einheit speichern und wieder laden möchte. Ich muß aber die Möglichkeit haben auf einzelne Teile auch separat zugreifen zu können.<br />
Ich weiß, dass ich auf diese eingebundenen Klassen nicht einfach so auf die Privaten Daten zugreifen kann. Nur wie bekomme ich das am geschicktesten hin.</p>
<p>Über friend Funktionen oder soll ich die gesamte Klasse als friend deklarieren? Und wenn ich die Daten nur in der Gesamtklasse reinladen möchte, wie kann ich die dann in eine Datei Streamen?</p>
<pre><code class="language-cpp">class KompoMass
        {
         private:                            // Private Bereich
         char Komponente[25];                // Komponentenname
         char Masseinheit[3];                // Masseinheit
         public:                             // Public Bereich
         KompoMass();                        // Konstruktor
         ~KompoMass();                       // Destruktor

         // Daten in Private Bereich übergeben
         void speicherDaten(const char *Komp, const char *Mass);

         // Komponente aus Datenbereich holen
         AnsiString holeKomponente(void);

         // Masseinheit aus Datenbereich holen
         AnsiString holeMasseinheit(void);

        };
</code></pre>
<pre><code class="language-cpp">// Klasse anlegen und ableiten von Klasse KompoMass
class EineFreq : public KompoMass
        {
         private:                            // Private Bereich
         float Minimum;                      // Frequenz
         int Anzahl;                         // Anzahl Messungen
         friend class GesamtFreq;
         public:                             // Public Bereich
         EineFreq();                         // Konstruktor
         ~EineFreq();                        // Destruktor

         // Daten in Private Bereich übergeben
         void speicherWerte1(AnsiString MinFreq, AnsiString Anz);

         // Minimum Frequenz aus Datenbereich holen
         float holeMinimum(void);

         // Anzahl aus Datenbereich holen
         int holeAnzahl(void);
        };
</code></pre>
<pre><code class="language-cpp">class GesamtFreq
        {
         public:
         class EineFreq Bauteil1;
         class EineFreq Bauteil2;
        };
</code></pre>
<p>Muß ich mir nun in der Klasse GesamtFreq eine Datenstruktur mit struct anlegen mit allen Daten, damit ich die Werte dann von den einzelnen Klassen mit den &quot;hole Anweisungen&quot; in diese Struktur schieben kann oder gibt es eine Möglichkeit, wie ich über eine Funktion in der GesamtFreq auf alle privaten Bereiche zugreifen kann um die nacheinander über folgenden Code in eine Datei zu schieben.</p>
<pre><code class="language-cpp">ofstream ausgabe(&quot;Grenzwerte.txt&quot;,ios_base::out | ios_base::binary);
         ausgabe.write(reinterpret_cast&lt;char *&gt;(&amp;GesamtFreq)
         ,sizeof(GesamtFreq));           
         ausgabe.close();
</code></pre>
<p>Eigentlich habe ich ja in der GesamtFreq ja schon eine Klasse wo alle Daten verfügbar wären.</p>
<p>Und mit GesamtFreq.Bauteil kann ich darauf zugreifen, nur sind da natürlich keine Werte drin.</p>
<p>Vielleicht kann mir jemand einen guten Tip geben, wie man mit diesem Problem umzugehen hat. Denn ich hänge seit ein paar Tagen daran.</p>
<p>Bin für jede Hilfe dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196547/daten-aus-klassen-in-dateien-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 18:03:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196547.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Oct 2007 08:39:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 08:45:14 GMT]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich habe schon viel in Foren gesucht und mich in verschiedenen Büchern zu diesem Thema eingelesen. Aber ich komme nicht weiter und bräuchte vielleicht mal einen Tip.</p>
<p>Folgendes Problem:<br />
Ich habe mehrere Klassen in denen ich in den Private Bereich Daten über Funktionen hineingebe. Diese Daten beziehen sich auf verschiedene Bauteile die ich mit Werten abspeichern möchte.</p>
<p>In einer Gesamtklasse rufe ich die einzelnen Klassen auf um sowas wie eine gesamte Struktur zu bilden, da ich diese Daten als eine Einheit speichern und wieder laden möchte. Ich muß aber die Möglichkeit haben auf einzelne Teile auch separat zugreifen zu können.<br />
Ich weiß, dass ich auf diese eingebundenen Klassen nicht einfach so auf die Privaten Daten zugreifen kann. Nur wie bekomme ich das am geschicktesten hin.</p>
<p>Über friend Funktionen oder soll ich die gesamte Klasse als friend deklarieren? Und wenn ich die Daten nur in der Gesamtklasse reinladen möchte, wie kann ich die dann in eine Datei Streamen?</p>
<pre><code class="language-cpp">class KompoMass
        {
         private:                            // Private Bereich
         char Komponente[25];                // Komponentenname
         char Masseinheit[3];                // Masseinheit
         public:                             // Public Bereich
         KompoMass();                        // Konstruktor
         ~KompoMass();                       // Destruktor

         // Daten in Private Bereich übergeben
         void speicherDaten(const char *Komp, const char *Mass);

         // Komponente aus Datenbereich holen
         AnsiString holeKomponente(void);

         // Masseinheit aus Datenbereich holen
         AnsiString holeMasseinheit(void);

        };
</code></pre>
<pre><code class="language-cpp">// Klasse anlegen und ableiten von Klasse KompoMass
class EineFreq : public KompoMass
        {
         private:                            // Private Bereich
         float Minimum;                      // Frequenz
         int Anzahl;                         // Anzahl Messungen
         friend class GesamtFreq;
         public:                             // Public Bereich
         EineFreq();                         // Konstruktor
         ~EineFreq();                        // Destruktor

         // Daten in Private Bereich übergeben
         void speicherWerte1(AnsiString MinFreq, AnsiString Anz);

         // Minimum Frequenz aus Datenbereich holen
         float holeMinimum(void);

         // Anzahl aus Datenbereich holen
         int holeAnzahl(void);
        };
</code></pre>
<pre><code class="language-cpp">class GesamtFreq
        {
         public:
         class EineFreq Bauteil1;
         class EineFreq Bauteil2;
        };
</code></pre>
<p>Muß ich mir nun in der Klasse GesamtFreq eine Datenstruktur mit struct anlegen mit allen Daten, damit ich die Werte dann von den einzelnen Klassen mit den &quot;hole Anweisungen&quot; in diese Struktur schieben kann oder gibt es eine Möglichkeit, wie ich über eine Funktion in der GesamtFreq auf alle privaten Bereiche zugreifen kann um die nacheinander über folgenden Code in eine Datei zu schieben.</p>
<pre><code class="language-cpp">ofstream ausgabe(&quot;Grenzwerte.txt&quot;,ios_base::out | ios_base::binary);
         ausgabe.write(reinterpret_cast&lt;char *&gt;(&amp;GesamtFreq)
         ,sizeof(GesamtFreq));           
         ausgabe.close();
</code></pre>
<p>Eigentlich habe ich ja in der GesamtFreq ja schon eine Klasse wo alle Daten verfügbar wären.</p>
<p>Und mit GesamtFreq.Bauteil kann ich darauf zugreifen, nur sind da natürlich keine Werte drin.</p>
<p>Vielleicht kann mir jemand einen guten Tip geben, wie man mit diesem Problem umzugehen hat. Denn ich hänge seit ein paar Tagen daran.</p>
<p>Bin für jede Hilfe dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395009</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 08:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 08:54:43 GMT]]></title><description><![CDATA[<p>Wo ist denn jetzt dein Problem? In &quot;GesamtFreq.Bauteil&quot; sind natürlich die Werte der Klasse drin - nur kommst du dort nicht direkt ran, weil sie privat sind. Um die Werte zu erhalten, mußt du die öffentliche Schnittstelle nutzen - hier also die Methoden &quot;holeMinimum()&quot; und &quot;holeAnzahl()&quot;.</p>
<p>Übrigens sollten die einzelnen Klassen selber in der Lage sein, ihre eigenen Daten in einen Stream zu schreiben bzw. wieder auszulesen.</p>
<p>PS: Dieses Mischmasch aus char-Arrays und AnsiString's sieht ja nicht mehr feierlich aus (noch schlimmer finde ich, daß du AnsiString's für Daten übergibst, die eigentlich Zahlen darstellen sollen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395017</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 08:54:43 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 09:14:53 GMT]]></title><description><![CDATA[<p>Hallo CStoll,</p>
<p>ich übergebe AnsiString, weil ich die Daten gleich im Borland Builder in ein Label oder in ein Edit Feld schreibe und mir die Umwandlung auf der Visuseite damit sparen möchte.</p>
<p>Zu meinem Problem ich habe ein Eingabeformular mit Grenzwerten, das ich auf der Visuseite mit GesamtFreq User starte. Die Daten die dort reingeschrieben werden, sollen in eine Datei Grenzwerte. Wenn aber der User keine eigenen Grenzwerte festlegen möchte, dann wird GesamtFreq Grundeinstellung geladen.</p>
<p>Ich weiß jetzt nicht, wie ich es fertig bringe, dass die Daten die in der GesamtFreq User drin stehen oder besser gesagt in Bauteil1 - KompoMass, Bauteil1 - EineFreq, z.B. mit der Funktion void speichereDaten(GesamtFreq) so aus den Unterklassen lesen kann, das ich die Werte auch in eine Datei schieben kann.</p>
<p>Da ich ja in GesamtFreq nur auf die Schnittstellenfunktionen der Unterklassen zugreifen kann. Wie speichere ich diese Daten dann zusammenhängend, ähnlich wie in einer Struktur, bei der ich sagen kann void speichereDaten(strukturname);</p>
<p>Wie muß da mein Zugriff auf auf die Unterklassen erfolgen, über Rückgabewerte, die ich dann wieder in einer Struktur die ich in GesamtFreq erstellen muß speichere. Oder gibt es eine Möglichkeit mit der ich gleich die Daten aus den Unterklassen nacheinander einlese und in eine Datei schiebe. Eventuell über eine Friend Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395029</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 09:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 09:26:44 GMT]]></title><description><![CDATA[<p>Da mußt du schon der Struktur eine Funktion &quot;SpeichereDaten()&quot; (und &quot;LeseDaten()&quot;) spendieren, die das übernimmt (und dann auch selber entscheidet, wie).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395037</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 09:26:44 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 09:55:01 GMT]]></title><description><![CDATA[<p>Das heißt, ich muß in GesamtFreq die zwei Funktionen &quot;SpeichereDaten()&quot; und &quot;LeseDaten()&quot;anlegen und in diesen Funktionen jeweils die holeKomponente, bzw. schreibeDaten aus den Unterklassen ansprechen um diese dann in eine Struktur zu schreiben, die ich wiederum speichern kann. Habe ich das so richtig verstanden?</p>
<p>Geht es nicht, dass ich irgendwie in der GesamtFreq, die ja schon alle Daten hat, sowas wie zeigeDaten aufrufe, diese dann alle Unterklassendaten aufruft und ich diese als direkten Stream abspeicher.</p>
<p>Ich habe auch versucht, den Code zum Speichern in die UnterKlassen einzubauen, da haut das hin, aber es würde ja, bei jedem Aufruf der Unterklassen die Datei geöffnet und geschlossen werden, was mir nicht als sehr Sinnvoll erscheint, wenn ich die Unterklassen 10 mal aufrufe um mir meine Daten abspeichern zu können.</p>
<p>Aber ich geb dir Recht, wenn ich die Daten im reinem Rohformat speichere und zurückgebe ist das besser. Die Visuseite sollte selber entscheiden wie sie die Daten umkonvertiert, dass muß nicht auf der Datenseite passieren, werde das umstricken. Danke für den Tip.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395056</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 09:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 10:02:34 GMT]]></title><description><![CDATA[<p>egcactus schrieb:</p>
<blockquote>
<p>Geht es nicht, dass ich irgendwie in der GesamtFreq, die ja schon alle Daten hat, sowas wie zeigeDaten aufrufe, diese dann alle Unterklassendaten aufruft und ich diese als direkten Stream abspeicher.</p>
</blockquote>
<p>Es ginge sicher, wenn da nicht ein entscheidendes Detail wäre - &quot;private&quot;. GesamtFreq darf nicht direkt auf die Daten seiner Member zugreifen, sondern nur über deren öffentliche Zugriffsmethoden.</p>
<blockquote>
<p>Ich habe auch versucht, den Code zum Speichern in die UnterKlassen einzubauen, da haut das hin, aber es würde ja, bei jedem Aufruf der Unterklassen die Datei geöffnet und geschlossen werden, was mir nicht als sehr Sinnvoll erscheint, wenn ich die Unterklassen 10 mal aufrufe um mir meine Daten abspeichern zu können.</p>
</blockquote>
<p>Du könntest auch die Datei einmal öffnen und dann als Parameter an die Speichern-Funktion(en) übergeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395063</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 10:02:34 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 10:16:08 GMT]]></title><description><![CDATA[<p>Als Parameter übergeben, meinst du damit, ich öffne die Datei in GesamtFreq</p>
<pre><code class="language-cpp">ofstream ausgabe(&quot;Grenzwerte.txt&quot;,ios_base::out | ios_base::binary);
</code></pre>
<p>schreibe in den Dateien eine Funktion mit holeDaten und schreibe</p>
<pre><code class="language-cpp">ausgabe.write(reinterpret_cast&lt;char *&gt;(&amp;jeweiligerDatenTyp)
         ,sizeof(jeweiligerDatenTyp));
</code></pre>
<p>und schließe dann wieder in GesamtFreq</p>
<pre><code class="language-cpp">ausgabe.close();
</code></pre>
<p>Oder meinst du das anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395076</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 10:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 10:22:37 GMT]]></title><description><![CDATA[<p>Ich meinte damit, daß du den Schreib-Methoden einen ostream übergibst - das tatsächliche Schreiben bleibt den Unterklassen überlassen:</p>
<pre><code class="language-cpp">class EineFreq : public KompoMass
{
  float Minimum;
  int Anzahl;
public:
  ...
  void speichere(ostream&amp; out)
  {
    KompoMass::speichere(out);
    out&lt;&lt;Minimum&lt;&lt;&quot; &quot;&lt;&lt;Anzahl&lt;&lt;endl;
  }
};

class GesamtFreq
{
  EineFreq Bauteil1;
  EineFreq Bauteil2;
public:
  ...
  void speichere(ostream&amp; out)
  {
    Bauteil1.speichere(out);
    Bauteil2.speichere(out);
  }
};

...
GesamtFreq Anlage;
...
ofstream ausgabe(...);
Anlage.speichere(ausgabe);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1395077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395077</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 10:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 10:41:45 GMT]]></title><description><![CDATA[<p>Ok, ich verstehe es nun. War eine schwere Geburt.</p>
<p>Ich baue noch etwas meine Aufrufe um, damit die Umkonvertierung der Daten auf der Visuseite passiert und nicht mehr in den Klassen und dann werde ich das mit der Übergabe des ostream probieren.</p>
<p>Vielen Dank nochmal, du hast mir sehr geholfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Grüße aus dem Schwabenländle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395098</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 10:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 12:21:39 GMT]]></title><description><![CDATA[<p>Also habe das nun mal eingebaut, aber irgendwie funktioniert das nicht.</p>
<p>Sobald ich die Zeile</p>
<pre><code class="language-cpp">void speichere(ostream&amp; out);
</code></pre>
<p>drin habe, bekomme ich gleich die Meldung:</p>
<p>) erwartet und bleibt nach dem &amp; stehen. Der Compiler nimmt die Zeile nur, wenn ich &amp; out weglasse, dann funktioniert aber der Rest nicht, da er ja das out nicht mehr kennt.</p>
<p>Was mache ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395161</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 12:21:39 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 12:26:09 GMT]]></title><description><![CDATA[<p>Wo hast du denn diese Zeile stehen? Und kennt der Compiler auch die Klasse &quot;ostream&quot; (#include &lt;iostream&gt; - und den Namensraum std:: beachten)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395164</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 12:26:09 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 12:57:48 GMT]]></title><description><![CDATA[<p>Ich habe in der Headerdatei KompoMass eine Funktion angelegt.</p>
<pre><code class="language-cpp">void speichere(ostream&amp; out);
</code></pre>
<p>danach habe ich noch versucht #include &lt;ostream&gt; ging aber nicht und mit #include &lt;iostream&gt; geht es auch nicht.</p>
<p>Habe den restlichen Code auskommentiert, so dass eigentlich nur noch diese Anweisung drin bleibt, dadurch dürfte er auch nicht mit dem namespace in einem konflikt geraten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395197</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 12:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 13:04:19 GMT]]></title><description><![CDATA[<p>Hast du mal versucht, den Namensraum explizit anzugeben?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void speichere(std::ostream&amp; out);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1395204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395204</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 13:04:19 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 13:16:34 GMT]]></title><description><![CDATA[<p>Hey, das wars.<br />
Aber warum ich den Namensraum explizit angeben muß ist mir nicht klar.</p>
<p>Werde mal den restlichen Code aktivieren und mal schauen was passiert.<br />
Nochmals danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395212</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 13:16:34 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 13:25:45 GMT]]></title><description><![CDATA[<p>egcactus schrieb:</p>
<blockquote>
<p>Hey, das wars.<br />
Aber warum ich den Namensraum explizit angeben muß ist mir nicht klar.</p>
</blockquote>
<p>Weil so ziemlich alle Bestandteile der Standardbibliothek in diesem Namensraum untergebracht sind <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Damit hast du drei Möglichkeiten, an den Bezeichner heranzukommen - explizite Namensraum-Angabe &quot;std::ostream&quot; (gilt nur für diese eine Code-Stelle), using-Deklaration &quot;using std::ostream;&quot; (gilt ab da für alle Vorkommen von ostream) oder using-Direktive &quot;using namespace std;&quot; (gilt für ALLE Bezeichner aus dem Namensraum) - letzteres ist für Header nicht zu empfehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395218</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 Oct 2007 13:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Wed, 31 Oct 2007 14:47:31 GMT]]></title><description><![CDATA[<p>Also es kam noch ein kleiner Fehler: Der Compiler bemängelte im Formular von wo ich das aufrufe, dass er &quot;ofstream&quot; nicht kennt, aber da hat dann nur die</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
</code></pre>
<p>Anweisung noch gefehlt.</p>
<p>Aber der Rest funktioniert einwandfrei.</p>
<p>Werde das ganze noch etwas umgestalten, so das der ofstream Aufruf in der Klasse GesamtFreq erfolgt und dass man den Dateinamen ändern kann, aber sonst ist das absolut Klasse.</p>
<p>Vielen herzlichen Dank nochmal. Denke wir werden uns bestimmt wieder sehen. Bin an diesem Projekt noch eine Weile beschäftigt. Und wenn wieder eine Frage auftaucht, die mich nicht schlafen lässt, dann weiß ich nun, dass ich hier Hilfe bekomme.</p>
<p>Viele Grüße aus dem Schwabenländle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395303</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Wed, 31 Oct 2007 14:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Klassen in Dateien schreiben on Fri, 02 Nov 2007 14:04:16 GMT]]></title><description><![CDATA[<p>Ich habe eine neue Lösung für mein Problem, habe es nun so gelöst:</p>
<p>Die Klasse GesamtFreq ruft die Unterklassen auf, in denen die als PRIVATE Werte gespeichert werden.</p>
<pre><code class="language-cpp">class GesamtFreq
        {
         public:
         class EineFreq Bauteil1;
         class EineFreq Bauteil2;

         // Daten in Datei schreiben
         void speicherInDatei(GesamtFreq);

         // Daten aus Datei lesen
         GesamtFreq leseAusDatei(void);
</code></pre>
<p>In den Funktionen speicherInDatei und leseAusDatei werden die Daten gespeichert bzw. geladen.</p>
<pre><code class="language-cpp">void GesamtFreq::speicherInDatei(GesamtFreq UserFreq)
        {
         ofstream fout(&quot;Datei.txt&quot;,ios::binary);
         fout.write((char*) &amp;UserFreq, sizeof UserFreq);
         fout.close();
        }
</code></pre>
<pre><code class="language-cpp">GesamtFreq GesamtFreq::leseAusDatei(void)
        {
         GesamtFreq DefaultFreq;
         ifstream fin(&quot;Datei.txt&quot;,ios::binary);
         fin.read((char*) &amp;DefaultFreq, sizeof DefaultFreq);
         fin.close();
         return DefaultFreq;
        }
</code></pre>
<p>Was hälst du von dieser Lösung? Oder verstosse ich gegen jede Regel der Programmierung?</p>
<p>Ich spare mir dadurch den ostream zu übergeben und danach die Daten mühselig wieder zu trennen. Da ich durch die verschiedenen Stringglängen bei den Komponenten und dadurch, dass ich mir die Masseinheiten, je nachdem in welchem Spektrum es gemessen werden soll bei jedem Bauteil, mehrmals notiere, kam ich immer wieder zu Verschiebungen in den Daten beim wieder einlesen.</p>
<p>Grüße aus dem Schwabenländle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396423</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Fri, 02 Nov 2007 14:04:16 GMT</pubDate></item></channel></rss>