<?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[Problem, Binärdaten auszulesen]]></title><description><![CDATA[<p>Ich habe ein Binärdatei mit einer langen Liste verschiedener Daten, die ich auch schön auslesen kann. Allerdings sind die Werte, die ich bekomme, größtenteils Blödsinn.</p>
<p>Ich lese die Datei in etwa so aus:</p>
<pre><code class="language-cpp">// Datei öffnen
ifstream infile;
infile.open (&quot;test.datei&quot;, ios::in|ios::binary);

// Variablen deklarieren
char buf4[4];  // 4-Byte-Buffer
unsigned long nSamples;

// Daten einlesen
infile.read(buf4,4);
nSamples = (unsigned long) *buf4;

// --&gt; weitere Verarbeitung von nSamples

// Datei schließen
infile.close();
</code></pre>
<p>Statt der zu erwartenden Zahl steht in nSamples jetzt aber eine nutzlose/falsche Zahl (mal wenig, mal viel, nie richtig). Nullen werden aber richtig erkannt und es lässt sich feststellen, dass ich durchaus die richtigen Werte einlese, sie aber offensichtlich nicht richtig in unsigned long umwandle. In der Datei sind sie laut Dokumentation als unsigned long gespeichert.</p>
<p>Vielen Dank schon einmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188304/problem-binärdaten-auszulesen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 02:03:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188304.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Jul 2007 08:37:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem, Binärdaten auszulesen on Mon, 30 Jul 2007 08:37:00 GMT]]></title><description><![CDATA[<p>Ich habe ein Binärdatei mit einer langen Liste verschiedener Daten, die ich auch schön auslesen kann. Allerdings sind die Werte, die ich bekomme, größtenteils Blödsinn.</p>
<p>Ich lese die Datei in etwa so aus:</p>
<pre><code class="language-cpp">// Datei öffnen
ifstream infile;
infile.open (&quot;test.datei&quot;, ios::in|ios::binary);

// Variablen deklarieren
char buf4[4];  // 4-Byte-Buffer
unsigned long nSamples;

// Daten einlesen
infile.read(buf4,4);
nSamples = (unsigned long) *buf4;

// --&gt; weitere Verarbeitung von nSamples

// Datei schließen
infile.close();
</code></pre>
<p>Statt der zu erwartenden Zahl steht in nSamples jetzt aber eine nutzlose/falsche Zahl (mal wenig, mal viel, nie richtig). Nullen werden aber richtig erkannt und es lässt sich feststellen, dass ich durchaus die richtigen Werte einlese, sie aber offensichtlich nicht richtig in unsigned long umwandle. In der Datei sind sie laut Dokumentation als unsigned long gespeichert.</p>
<p>Vielen Dank schon einmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1334780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1334780</guid><dc:creator><![CDATA[Paperflyer]]></dc:creator><pubDate>Mon, 30 Jul 2007 08:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem, Binärdaten auszulesen on Mon, 30 Jul 2007 08:42:59 GMT]]></title><description><![CDATA[<p>Ich würde mal vermuten, du hast den Cast falsch angesetzt (statt den gesamten Puffer als int-Wert zu betrachten, wandelst du nur das erste Zeichen um). Versuch's mal so:</p>
<pre><code class="language-cpp">nSamples = *((unsigned long*)buf);
// oder besser - mit C++ Casts:
nSamples = * reinterpret_cast&lt;unsigned long*&gt;(buf);

// oder du lässt den Zwischenspeicher gleich ganz weg:
infile.read(reinterpret_cast&lt;char*&gt;(&amp;nSamples),sizeof(long));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1334781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1334781</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 Jul 2007 08:42:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem, Binärdaten auszulesen on Mon, 30 Jul 2007 09:33:28 GMT]]></title><description><![CDATA[<p>Das scheint das Problem zu großen Teilen zu lösen, danke!<br />
Ich werde allerdings noch genug Zeit damit verbringen müssen, die Werte zu interpretieren da sie sich leider ganz und gar nicht so verhalten, wie ich das dachte <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/1334805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1334805</guid><dc:creator><![CDATA[Paperflyer]]></dc:creator><pubDate>Mon, 30 Jul 2007 09:33:28 GMT</pubDate></item></channel></rss>