<?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[ifstream liest Datei nur beim 1. mal richtig]]></title><description><![CDATA[<p>Hallo Ihr Lieben,</p>
<p>ich muss eine binäre Datei einlesen und hab damit ein kleines Problem. Rufe ich diese Funktion das erste mal auf, läuft alles Problemlos und ich bekomme meine Daten, beim zweiten mal funktioniert das nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /> Ich krieg da andere Daten obwohl die Datei sich nicht geändert hat.</p>
<pre><code>int MyClass::MyFunction(MyObject *&amp;myObject)
{
	int ret = 0;

	CString	csDataFile;
	csDataFile.Format( &quot;%s\\%s&quot;, DEFAULT_PATH, TS_DATA_FILE);

	ifstream is(csDataFile, ios::in|ios::binary);
	if(!is.bad())
	{
		is.read(reinterpret_cast&lt;char*&gt;(&amp;myObject),sizeof(myObject));
	}
	else
	{
		ret = 1;
	}
	is.close();

	return ret;
}
</code></pre>
<p>Es sieht so aus als würde er die Daten beim zweiten aufruf der Funktion nicht mehr aus der Datei lesen.<br />
Ideen wie ich das gestalten könnte damit man diese Funktion beliebig oft aufrufen und immer das was in der Datei steht bekomme?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325571/ifstream-liest-datei-nur-beim-1-mal-richtig</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 08:19:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325571.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 May 2014 11:16:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 11:16:42 GMT]]></title><description><![CDATA[<p>Hallo Ihr Lieben,</p>
<p>ich muss eine binäre Datei einlesen und hab damit ein kleines Problem. Rufe ich diese Funktion das erste mal auf, läuft alles Problemlos und ich bekomme meine Daten, beim zweiten mal funktioniert das nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /> Ich krieg da andere Daten obwohl die Datei sich nicht geändert hat.</p>
<pre><code>int MyClass::MyFunction(MyObject *&amp;myObject)
{
	int ret = 0;

	CString	csDataFile;
	csDataFile.Format( &quot;%s\\%s&quot;, DEFAULT_PATH, TS_DATA_FILE);

	ifstream is(csDataFile, ios::in|ios::binary);
	if(!is.bad())
	{
		is.read(reinterpret_cast&lt;char*&gt;(&amp;myObject),sizeof(myObject));
	}
	else
	{
		ret = 1;
	}
	is.close();

	return ret;
}
</code></pre>
<p>Es sieht so aus als würde er die Daten beim zweiten aufruf der Funktion nicht mehr aus der Datei lesen.<br />
Ideen wie ich das gestalten könnte damit man diese Funktion beliebig oft aufrufen und immer das was in der Datei steht bekomme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398075</guid><dc:creator><![CDATA[NeoMoon]]></dc:creator><pubDate>Thu, 08 May 2014 11:16:42 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 11:24:30 GMT]]></title><description><![CDATA[<p>Wenn mich mein Holzausge nicht täuscht ist da doch ein &amp; zuviel in Zeile 11?<br />
Und die Größe (sizeof(myObject) ist doch auch nur die eines Zeigers?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398077</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 08 May 2014 11:24:30 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 11:26:50 GMT]]></title><description><![CDATA[<p>Hallo NeoMoon,</p>
<p>Willkommen im C++-Forum.</p>
<p>Der Unterschied zwischen dem ersten und dem zweiten Lesen besteht mit großer Wahrscheinlichkeit darin, dass sich beim ersten Lesen das Objekt vorher(!) noch im Speicher befindet.<br />
Du liest nicht das Objekt sondern den Zeiger auf das Objekt aus der Datei. Lasse Dir probehalber mal</p>
<pre><code>sizeof(myObject)
</code></pre>
<p>ausgeben. Da sollte 4 oder 8 raus kommen, aber nicht die Größe Deines Objekts.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398078</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 08 May 2014 11:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 11:35:42 GMT]]></title><description><![CDATA[<p>Man sollte auch mal kontrollieren ob man diese Klasse so komplett überhaupt binär schreiben/lesen kann. Wenn da noch weitere Zeiger drin sind gibts noch mehr Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398081</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 08 May 2014 11:35:42 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 11:37:42 GMT]]></title><description><![CDATA[<p>MyObject ist eine rekursive Klasse die auch andere Klassen enthält die natürlich auch las Zeiger deklariert sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398084</guid><dc:creator><![CDATA[NeoMoon]]></dc:creator><pubDate>Thu, 08 May 2014 11:37:42 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 11:51:02 GMT]]></title><description><![CDATA[<p><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="🙄"
    /> *autsch*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398089</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 08 May 2014 11:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 12:33:52 GMT]]></title><description><![CDATA[<p>Gibt es eine andere Möglichkeit komplexe Strukturen in Dateien abzulegen und zu lesen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398103</guid><dc:creator><![CDATA[NeoMoon]]></dc:creator><pubDate>Thu, 08 May 2014 12:33:52 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 12:34:51 GMT]]></title><description><![CDATA[<p>NeoMoon schrieb:</p>
<blockquote>
<p>MyObject ist eine rekursive Klasse die auch andere Klassen enthält die natürlich auch las Zeiger deklariert sind.</p>
</blockquote>
<p>dann nimm besser vom binären Abspeichern Abstand. Wenn Du da Fehler machst, hast Du kaum Kontrollmöglichkeiten.</p>
<p>Schau Dir mal <a href="http://www.c-plusplus.net/forum/325563" rel="nofollow">diesen Thread</a> an, dort wird Information in lesbarer Form geschrieben und gelesen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398104</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 08 May 2014 12:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 15:16:39 GMT]]></title><description><![CDATA[<p>NeoMoon schrieb:</p>
<blockquote>
<p>Gibt es eine andere Möglichkeit komplexe Strukturen in Dateien abzulegen und zu lesen ?</p>
</blockquote>
<p>Ja, natürlich. Dazu musst du dir ein Serialisierungsformat ausdenken oder (vllt. besser) aussuchen und eine Funktion schreiben, die die relevanten Daten deiner Struktur entsprechend rausschreiben und wieder einlesen kann. Sowas lässt sich teilweise auch generieren.</p>
<p>Guck dich mal ein bisschen um. Protocol Buffers wären eine Möglichkeit. Oder JSON oder sowas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398127</guid><dc:creator><![CDATA[Yolo, World!]]></dc:creator><pubDate>Thu, 08 May 2014 15:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream liest Datei nur beim 1. mal richtig on Thu, 08 May 2014 16:02:19 GMT]]></title><description><![CDATA[<p>NeoMoon schrieb:</p>
<blockquote>
<p>Gibt es eine andere Möglichkeit komplexe Strukturen in Dateien abzulegen und zu lesen ?</p>
</blockquote>
<p>Kennst du Boost? Eine bekannte Möglichkeit in C++ Klassen serialisierbar zu machen, besteht darin, <a href="http://www.boost.org/doc/libs/1_55_0/libs/serialization/doc/index.html" rel="nofollow">Boost.Serialization</a> zu verwenden. Diese Bibliothek serialisiert Container und Strings so, dass sie nach dem Serialisieren und Einlesen im selben Zustand* sind wie vorher.</p>
<p>* Also denselben Wert haben. Das Problem mit dem direkten Serialisieren von Klassen sind Zeiger (und ggf. Referenzen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398134</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 08 May 2014 16:02:19 GMT</pubDate></item></channel></rss>