<?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[fstream: mehrere structs nacheinander auslesen?]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich habe ein Problem mit dem einlesen einer binären Datei.<br />
Ich habe ein struct FileStruct, was wiederum aus den beiden structs header und data besteht.<br />
Wenn ich das ganze struct FileStruct komplett einlese ist alles wunderbar, wenn ich aber erst header und dann data einzeln einlese ist data fehlerhaft:</p>
<p>Hier die Structs:</p>
<pre><code class="language-cpp">struct ffsfile_t
{
	header_t header;
	data_t data;
};
</code></pre>
<p>Hier der fehlerhafte Code:</p>
<pre><code class="language-cpp">ffsfile_t FileStruct;

//Open File!
ifstream ffsfile( &quot;...&quot;, ios::binary );
ffsfile.read( (char*)&amp;FileStruct.header, sizeof(FileStruct.header));
ffsfile.read( (char*)&amp;FileStruct.data, sizeof(FileStruct.data));
</code></pre>
<p>Nun meine Frage:<br />
Wie kann ich zwei Teile einer Datei nacheinander einlesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205455/fstream-mehrere-structs-nacheinander-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 04:35:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205455.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Feb 2008 13:51:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fstream: mehrere structs nacheinander auslesen? on Thu, 14 Feb 2008 13:52:32 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich habe ein Problem mit dem einlesen einer binären Datei.<br />
Ich habe ein struct FileStruct, was wiederum aus den beiden structs header und data besteht.<br />
Wenn ich das ganze struct FileStruct komplett einlese ist alles wunderbar, wenn ich aber erst header und dann data einzeln einlese ist data fehlerhaft:</p>
<p>Hier die Structs:</p>
<pre><code class="language-cpp">struct ffsfile_t
{
	header_t header;
	data_t data;
};
</code></pre>
<p>Hier der fehlerhafte Code:</p>
<pre><code class="language-cpp">ffsfile_t FileStruct;

//Open File!
ifstream ffsfile( &quot;...&quot;, ios::binary );
ffsfile.read( (char*)&amp;FileStruct.header, sizeof(FileStruct.header));
ffsfile.read( (char*)&amp;FileStruct.data, sizeof(FileStruct.data));
</code></pre>
<p>Nun meine Frage:<br />
Wie kann ich zwei Teile einer Datei nacheinander einlesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1455859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1455859</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Thu, 14 Feb 2008 13:52:32 GMT</pubDate></item><item><title><![CDATA[Reply to fstream: mehrere structs nacheinander auslesen? on Thu, 14 Feb 2008 14:18:06 GMT]]></title><description><![CDATA[<p>eigentlich müsste das so gehen. vielleicht liegt das am alignment der elemente, keine Ahnung. Überprüf mal, ob sizeof(a)+sizeof(b)==sizeof(grosse_struct).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1455871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1455871</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 14 Feb 2008 14:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to fstream: mehrere structs nacheinander auslesen? on Thu, 14 Feb 2008 20:59:46 GMT]]></title><description><![CDATA[<p>Der Fehler lag im Abspeichern des Structs!<br />
Wenn ich FileStruct als ganzes abspeicher funktionierts nicht. Wenn ich allerdings(analog zum Einlesen) zuerst FileStruct.header und dann FileStruct.data abspeicher dann funktioniert auch das Einlesen.</p>
<p>Scheinbar schreibt das Programm die komponenten des Structs nicht in der Reihenfolge in der ich sie programmiert hab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1456183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1456183</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Thu, 14 Feb 2008 20:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to fstream: mehrere structs nacheinander auslesen? on Thu, 14 Feb 2008 21:12:46 GMT]]></title><description><![CDATA[<p>RedPuma schrieb:</p>
<blockquote>
<p>Scheinbar schreibt das Programm die komponenten des Structs nicht in der Reihenfolge in der ich sie programmiert hab.</p>
</blockquote>
<p>Mit Sicherheit nicht.</p>
<p>Hast du Maxi's Größenvergleich gemacht!?</p>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1456195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1456195</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 14 Feb 2008 21:12:46 GMT</pubDate></item><item><title><![CDATA[Reply to fstream: mehrere structs nacheinander auslesen? on Sat, 16 Feb 2008 14:42:45 GMT]]></title><description><![CDATA[<p>Habe einen Größenvergleich angefertigt:</p>
<pre><code class="language-cpp">int size1 = sizeof( tgaImage.colormapspec );
int size2 = sizeof( tgaImage.colormapspec.origin ) 
          + sizeof( tgaImage.colormapspec.length ) 
          + sizeof( tgaImage.colormapspec.size );
</code></pre>
<p>Wobei colormapspec wirklich nur aus 2 mal short int und einmal BYTE besteht.</p>
<p>Die Größe size1 entspricht (falsch) 6 Byte.<br />
Die Größe size2 entspricht (vollkommen richtig) 5 Byte.</p>
<p>Evtl wird ein Byte für das Struct reserviert und mit ausgelesen? Es geht mir hierbei nur noch ums Verständnis, ich kann ja mit seekg arbeiten, alle typen einzeln auslesen oder (wohl die beste lösung) eine feste größe bei fstream::read angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457115</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Sat, 16 Feb 2008 14:42:45 GMT</pubDate></item></channel></rss>