<?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[Tutorial gesucht]]></title><description><![CDATA[<p>Kennt jemand von euch ein Tutorial (möglichst deutsch) über Streams im binär Modus. Ich hatte schon mal eines gesehen welches diesen Aspekt behandelt, finde es aber nicht mehr.<br />
Ich möchte halt wissen, wie ich einen Binärcode in die jeweilige Datei einlese/auslese und wie ich dass am besten mit &lt;bitset&gt; verknüpfen kann. Vll. kennt ja jemand ein gutes Tutorial.</p>
<p>Gruß<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273169/tutorial-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 07:45:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273169.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Sep 2010 13:30:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tutorial gesucht on Wed, 01 Sep 2010 13:30:09 GMT]]></title><description><![CDATA[<p>Kennt jemand von euch ein Tutorial (möglichst deutsch) über Streams im binär Modus. Ich hatte schon mal eines gesehen welches diesen Aspekt behandelt, finde es aber nicht mehr.<br />
Ich möchte halt wissen, wie ich einen Binärcode in die jeweilige Datei einlese/auslese und wie ich dass am besten mit &lt;bitset&gt; verknüpfen kann. Vll. kennt ja jemand ein gutes Tutorial.</p>
<p>Gruß<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946979</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 01 Sep 2010 13:30:09 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Wed, 01 Sep 2010 15:17:00 GMT]]></title><description><![CDATA[<p>Mit der Einschränkung &quot;möglichst auf Deutsch&quot; kommst du nicht weit. Je spezieller die Themen, desto seltener findet sich ordentliche Literatur auf deutsch, das meiste wird auf englisch geschrieben. Vieles von den Deutschen Sachen sind übersetze englische Dinge, deshalb häufig schon etwas älter bzw. veraltet, und meistens auch nicht besonders gut übersetzt. Daher wirst du um Englisch nicht drumherum kommen, wenn du dich ersnthaft mit solchen Themen beschäftigen willst. Und mit ein bisschen Übung ist das dann auch nicht so wild. Ansonsten schau mal <a href="http://lmgtfy.org/?q=tutorial+%20c%2B%2B+stream+binary" rel="nofollow">hier</a> und such dir eines der Tutorials aus, oder mehrere. Möglichst auf englisch <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/1947006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947006</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 01 Sep 2010 15:17:00 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Wed, 01 Sep 2010 16:20:06 GMT]]></title><description><![CDATA[<p>Mh also anscheinend geht es ja auf diese Art udn Weise:</p>
<pre><code class="language-cpp">char A[7] = &quot;BlaBla&quot;;
fstream binary_file(&quot;/home/andi/BI.xlz&quot;, ios::out | ios::binary);
binary_file.write(reinterpret_cast&lt;char *&gt;(&amp;A), 6);
binary_file.close();

char B[7];
binary_file.open(&quot;/home/andi/BI.xlz&quot;, ios::in | ios::binary);
// &lt;-- tellp();
binary_file.read(reinterpret_cast&lt;char *&gt;(&amp;B),6);
binary_file.close();
cout &lt;&lt; B &lt;&lt; endl; // -&gt; BlaBlaBlaBla
</code></pre>
<p>1. Warum wird &quot;BlaBlaBlaBla&quot; ausgegeben? Und nicht &quot;BlaBla&quot;?<br />
2. Ganz mysteriös: Wenn ich nachdem ich das file ein 2. mal geöffnet habe &quot;binary_file.tellp()&quot; dazwischen schiebe, funktioniert es plötzlich und es kommt ganz normal einmal &quot;BlaBla&quot;<br />
3. Anscheinend ist das so üblich mit dem &quot;reinterpret_cast&quot; oder? Bisher habe ich nur immer überall gelsen, man solle auf keinen Fall reinterpret_cast in seinem Proggramm verwenden, weil dieser so gefährlich sei?!</p>
<p>Gruß<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947039</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 01 Sep 2010 16:20:06 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Wed, 01 Sep 2010 17:34:07 GMT]]></title><description><![CDATA[<p>B ist nicht nullterminiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947066</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 01 Sep 2010 17:34:07 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Wed, 01 Sep 2010 21:47:16 GMT]]></title><description><![CDATA[<p>Ja klar natürlich, jetzt funktionierts:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;bitset&gt;
#include &lt;fstream&gt;

using namespace std;

int main()
{

    char A[7] = &quot;BlaBla&quot;;
    fstream binary_file(&quot;/home/andi/BI.xlz&quot;, ios::out | ios::binary);
    binary_file.write(reinterpret_cast&lt;char *&gt;(&amp;A), 6);
    binary_file.close();

    char B[7];
    binary_file.open(&quot;/home/andi/BI.xlz&quot;, ios::in | ios::binary);
    binary_file.read(reinterpret_cast&lt;char *&gt;(&amp;B),6);
    B[6] = '\0';
    binary_file.close();
    cout &lt;&lt; B &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Manchmal sieht man den Wald vor lauter Bäumen nicht <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="🙂"
    /><br />
Dankeschön</p>
<p>Gruß<br />
Stromberg</p>
<p>EDIT:<br />
Noch was, und zwar zur allgemeinen Funktionsweise von reinterpret_cast, ich kann das zwar jetzt schön anwenden, und so eine Binärdatei erstellen, was aber genau passiert verstehe ich nicht?! In meinem Buch habe ich gelesen: &quot;reinterpret_cast: Neuinterpretation des Bitmusters auf tiefer Ebene&quot;. Nur was soll das heißen? Irgendwie wandelt reinterpret_cast mein &quot;BlaBla&quot; in einen Binärcode um und schreibt ihn dann in eine Datei oder?<br />
Und was soll eigentlich der Adressoperator &quot;&amp;&quot; vor dem B? Kann mir jemand die Funktionsweise erläutern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947150</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 01 Sep 2010 21:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Wed, 01 Sep 2010 22:02:02 GMT]]></title><description><![CDATA[<p><code>A</code> hat ein bestimmtes Bitmuster, dessen Interpretation sich je nach Datentyp (und oft auch Plattform) unterscheidet. Zum Beispiel kann diese einem Zweierkomplement bei <code>int</code> und Mantisse/Exponent bei <code>float</code> entsprechen. Mit <code>reinterpret_cast</code> sagst du dem Compiler, er soll die Typprüfung umgehen und den Speicherbereich als Zieltyp neu interpretieren. Der Cast tut selbst also nichts, aber er bereitet den nachfolgenden Zugriff (der je nach Typ anders aussieht) auf den Speicher vor.</p>
<p><code>reinterpret_cast&lt;char*&gt;</code> deshalb, weil du auf die einzelnen Bytes ( <code>char</code> s) des Objekts zugreifen willst. Wenn du den resultierenden <code>char*</code> -Zeiger dereferenzierst (z.B. mit dem Indexoperator), hast du genau das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947157</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 01 Sep 2010 22:02:02 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Thu, 02 Sep 2010 11:56:54 GMT]]></title><description><![CDATA[<p>Noch eine Frage, was ist denn am schnellsten 1 Byte oder 8 Byte oder....schreiben? Gibt es da einen optimalen Wert oder ist dass egal?</p>
<p>Gruß<br />
Stromberg</p>
<p>EDIT:<br />
Und noch was, kann mir jemand sagen wie ich Zahlen in eine Binärdatei schreibe, Zeichen sind ja kein Problem mehr, aber wie geht dass ganze mit reinen Zahlen bzw. sogar eventuell reinen Binärzahlen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947289</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Thu, 02 Sep 2010 11:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Thu, 02 Sep 2010 11:56:34 GMT]]></title><description><![CDATA[<p>Ein-/Ausgabe ist sowieso total lahm, der Flaschenhals ist dabei das Ausgabegerät selbst. <strong>Optimierung der Ausgabemethode ist daher irrelevant.</strong> Sieh halt bloß zu, dass du nicht dauernd die Puffer synchronisierst (z.B. durch schließen und wieder öffnen eines Filestreams, eventuell auch durch Vermeidung von flush, weiß nicht genau ob letzteres bei Dateien auch lahm ist). Ansonsten kannst du als Dauemnregel nehmen, dass mehr Daten auf einmal im Durchschnitt schneller geschrieben werden, weil eventueller Overhead nur einmal anfällt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947308</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 02 Sep 2010 11:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Thu, 02 Sep 2010 16:15:46 GMT]]></title><description><![CDATA[<p>Hat jemand mein EDIT vom letzten Beitrag gelesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947433</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Thu, 02 Sep 2010 16:15:46 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Thu, 02 Sep 2010 17:13:19 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Hat jemand mein EDIT vom letzten Beitrag gelesen?</p>
</blockquote>
<p>Ja, aber ich verstehe nicht was du meinst. Beziehungsweise wo da der Unterschied zu Zeichen sein soll. Und was eine Binärzahl sein soll. Also kurz gesagt: Ich verstehe deine Frage nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947464</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 02 Sep 2010 17:13:19 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Fri, 03 Sep 2010 00:10:12 GMT]]></title><description><![CDATA[<p>Bis jetzt habe ich immer z.B. Wörter eingelesen oder einzelne Buchstaben. Wie kann ich aber Zahlen/Binärzahlen in eine Datei einlesen z.B. 1233 / 10011010001.<br />
So etwas sähe doch von der Binär Datei dann auch schon ganz anderst aus. bei Wörtern belegt ja jeder Buchstabe ein Byte, aber bei 1233 würden ja auf einmal 11 bit belegt werden.<br />
Kann ich so eine Zahl auch mit der Funktion write und dem reinterpret_cast in die Binär Datei reinschreiben oder gibt es da eine andere Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947641</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 03 Sep 2010 00:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Fri, 03 Sep 2010 07:09:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du kannst alles binär schreiben. Das sieht dann z.Bsp. so aus</p>
<pre><code class="language-cpp">int i = 4;
ofstream binary_file(&quot;/home/andi/BI.xlz&quot;, ios::binary);
binary_file.write(reinterpret_cast&lt;const char *&gt;(&amp;i), sizeof(i));
</code></pre>
<p>Das inlesen dann analog.</p>
<pre><code class="language-cpp">int i;
ifstream binary_file(&quot;/home/andi/BI.xlz&quot;, ios::binary);
binary_file.read(reinterpret_cast&lt;char *&gt;(&amp;i), sizeof(i));
</code></pre>
<p>Warum willst du eigentlich alles binär schreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947668</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 03 Sep 2010 07:09:15 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Fri, 03 Sep 2010 08:03:45 GMT]]></title><description><![CDATA[<p>Wenn du dir write mal genau ansiehst, wirst du merken das das immer mindestens 1 byte == 8 bit speichert. Wenn du zahlen speichern willt die größer als 1 byte sind solltest du mal nach endianess googeln. je nach rechner kann<br />
deine 1234 als 00000100 11010001 oder 11010001 00000100 gespeichert werden (nur wichtig wenn du dich nicht auch selbst ums einlesen kümmerst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947682</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Fri, 03 Sep 2010 08:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Fri, 03 Sep 2010 15:47:40 GMT]]></title><description><![CDATA[<p>Wem willst du das jetzt sagen?<br />
Klar kann die Endianess ein Problem werden wenn man Binärdateien zwischen verschiedenen Systemen austauschen will. Das sollte man aber sowieso nicht machen. Mit der Größe der Datentypen hat man dann ja auch ein Problem.</p>
<p>Oder man machts wie bei Qt (QDataStream) wo alle relevanten Informationen gleich mit gespeichert werden so das auch die Kompatibilität zwischen unterschiedlichen Systemen wieder da ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947875</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 03 Sep 2010 15:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to Tutorial gesucht on Fri, 03 Sep 2010 18:03:35 GMT]]></title><description><![CDATA[<p>Was haltet ihr von der Funktion?</p>
<pre><code class="language-cpp">bool BinaerEingabe(const vector&lt;string&gt; temp, const string &amp;filename)
{
    ofstream data(filename.c_str(), ios::out | ios::binary);
    for(vector&lt;string&gt;::const_iterator iter = temp.begin(); iter != temp.end(); ++iter)
    {
        for(string::size_type i = 0; i&lt;iter-&gt;size(); ++i)
        {
            char buffer = iter-&gt;at(i);
            data.write(reinterpret_cast&lt;char *&gt;(&amp;buffer), 1);
            if(!data.good()) return false;
        }
    }
    data.close();
    return true;
}
</code></pre>
<p>Ist es schlecht dass ich immer nur 1Byte einlese (also von der Schnelligkeit)? Wenn ich mehr Zeichen einlese z.B. 8Byte dann müsste ichs aber irgendwie wieder hin bekommen dass der String aufgeht, oder was soll ich machen wenn es am Ende bei der letzten Schreiboperation z.B. nur noch 3 Zeichen gibt, ich aber eigentlich 8 benötige?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a><br />
Wollte so was nur mal ausprobieren, mir wars zu langweilig immer nur in .txt Dateien zu schreiben. Was binär abzuspeichern sieht cooler aus, und es kann nicht jeder gleich auf Anhieb lesen. <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>Gruß<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947933</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 03 Sep 2010 18:03:35 GMT</pubDate></item></channel></rss>