<?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[Datei gibt nicht das aus, womit ich sie beschrieben habe]]></title><description><![CDATA[<p>Hi <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>Ich hab eine Datei folgendermaßen beschrieben:</p>
<pre><code class="language-cpp">file &lt;&lt; char(a1) &lt;&lt; char(a2) &lt;&lt; char(a3) &lt;&lt; char(a4);
</code></pre>
<p>file ist vom Typ fstream und a1-4 vom Typ short mit einem Wert von 0-255. Es sollen sozusagen 4 ASCII-Zeichen in die Datei geschrieben werden.</p>
<p>Das Auslesen sieht dann so aus:</p>
<pre><code class="language-cpp">char c1,c2,c3,c4;

file &gt;&gt; c1 &gt;&gt; c2 &gt;&gt; c3 &gt;&gt; c4;

std::cout &lt;&lt; short(c1) &lt;&lt; &quot;,&quot; &lt;&lt; short(c2) &lt;&lt; &quot;,&quot; &lt;&lt; short(c3) &lt;&lt; &quot;,&quot; &lt;&lt; short(c4);
</code></pre>
<p>Hierbei werden mir jedoch völlig andere Werte zurückgeliefert.</p>
<p>Ich vermute, dass es daran liegt, dass die Datei im Unicode statt im ANSI-Format vorliegt.</p>
<p>Wäre echt für jede Hilfe dankbar. <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>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246669/datei-gibt-nicht-das-aus-womit-ich-sie-beschrieben-habe</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 05:33:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246669.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Jul 2009 00:14:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 00:14:45 GMT]]></title><description><![CDATA[<p>Hi <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>Ich hab eine Datei folgendermaßen beschrieben:</p>
<pre><code class="language-cpp">file &lt;&lt; char(a1) &lt;&lt; char(a2) &lt;&lt; char(a3) &lt;&lt; char(a4);
</code></pre>
<p>file ist vom Typ fstream und a1-4 vom Typ short mit einem Wert von 0-255. Es sollen sozusagen 4 ASCII-Zeichen in die Datei geschrieben werden.</p>
<p>Das Auslesen sieht dann so aus:</p>
<pre><code class="language-cpp">char c1,c2,c3,c4;

file &gt;&gt; c1 &gt;&gt; c2 &gt;&gt; c3 &gt;&gt; c4;

std::cout &lt;&lt; short(c1) &lt;&lt; &quot;,&quot; &lt;&lt; short(c2) &lt;&lt; &quot;,&quot; &lt;&lt; short(c3) &lt;&lt; &quot;,&quot; &lt;&lt; short(c4);
</code></pre>
<p>Hierbei werden mir jedoch völlig andere Werte zurückgeliefert.</p>
<p>Ich vermute, dass es daran liegt, dass die Datei im Unicode statt im ANSI-Format vorliegt.</p>
<p>Wäre echt für jede Hilfe dankbar. <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>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752716</guid><dc:creator><![CDATA[th3AddY]]></dc:creator><pubDate>Fri, 31 Jul 2009 00:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 00:20:20 GMT]]></title><description><![CDATA[<p>Wie hast du es geöffnet? Welche Werte hast du geschrieben? Was hast du bekommen? Was hast du erwartet?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752718</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 31 Jul 2009 00:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 00:35:01 GMT]]></title><description><![CDATA[<p>Geschrieben hab ich die Datei folgendermaßen:</p>
<pre><code class="language-cpp">short a1,a2,a3,a4;

a1 = ...; a2 = ...; ... // Werte von 0-255

fstream file;
file.open(L&quot;datei.dat&quot;, ios::binary);

file &lt;&lt; char(a1) &lt;&lt; char(a2) &lt;&lt; char(a3) &lt;&lt; char(a4);

file.close();
</code></pre>
<p>auslesen:</p>
<pre><code class="language-cpp">char c1,c2,c3,c4;

fstream file;
file.open(L&quot;datei.dat&quot;, ios::binary);

file &gt;&gt; c1 &gt;&gt; c2 &gt;&gt; c3 &gt;&gt; c4;

file.close()

std::cout &lt;&lt; short(c1) &lt;&lt; &quot;,&quot; &lt;&lt; short(c2) &lt;&lt; &quot;,&quot; &lt;&lt; short(c3) &lt;&lt; &quot;,&quot; &lt;&lt; short(c4);
</code></pre>
<p>Erwartet habe ich die Werte, mit denen ich a1-4 belegt hatte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752722</guid><dc:creator><![CDATA[th3AddY]]></dc:creator><pubDate>Fri, 31 Jul 2009 00:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 00:47:37 GMT]]></title><description><![CDATA[<p>th3AddY schrieb:</p>
<blockquote>
<p>Erwartet habe ich die Werte, mit denen ich a1-4 belegt hatte.</p>
</blockquote>
<p>Und könntest du da Besipielwerte angeben? Mich beschleicht nämlich das Gefühl, dass es Werte sind, welche grösser als 127 sind. Deine eingelesenen <code>char</code> Werte haben dann negative Werte und wenn du diese einem <code>short</code> zuweist, dann wird der negative Wert beibehalten.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">short s = 255;
char c = static_cast&lt;char&gt;(s);

std::cout &lt;&lt; s &lt;&lt; std::endl; // 255
std::cout &lt;&lt; (int)c &lt;&lt; std::endl; // -1

s = c;
std::cout &lt;&lt; s &lt;&lt; std::endl; // -1

// Mögliche Lösung:
// Lies unsigned char Werte ein.
s = 255;
unsigned char uc = static_cast&lt;unsigned char&gt;(s);

std::cout &lt;&lt; s &lt;&lt; std::endl; // 255
std::cout &lt;&lt; (int)uc &lt;&lt; std::endl; // 255

s = uc;
std::cout &lt;&lt; s &lt;&lt; std::endl; // 255
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752724</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 31 Jul 2009 00:47:37 GMT</pubDate></item><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 10:26:10 GMT]]></title><description><![CDATA[<p>Das ist auf jeden Fall schonmal ein guter Anfang. Denn meine Werte liegen im Bereich 0-255.</p>
<p>Mein Ziel ist es, einzelne Bytes als ASCII-Zeichen kodiert in eine Datei zu schreiben.</p>
<p>Jedoch erhalte ich jetzt sehr seltsame Ausgaben.</p>
<p>write:</p>
<pre><code class="language-cpp">file &lt;&lt; unsigned char(a1) &lt;&lt; unsigned char(a2) &lt;&lt; unsigned char(a3) &lt;&lt; unsigned char(a4);
</code></pre>
<p>für short a1,a2,a3,a4 mit den Werten:</p>
<pre><code>0,1,226,64
</code></pre>
<p>read:</p>
<pre><code class="language-cpp">unsigned char c1,c2,c3,c4;

file &gt;&gt; c1 &gt;&gt; c2 &gt;&gt; c3 &gt;&gt; c4;

std::cout &lt;&lt; short(c1) &lt;&lt; &quot;,&quot; &lt;&lt; short(c2) &lt;&lt; &quot;,&quot; &lt;&lt; short(c3) &lt;&lt; &quot;,&quot; &lt;&lt; short(c4);
</code></pre>
<p>und erhalte:</p>
<pre><code>204,204,204,204
</code></pre>
<p>vier mal denselben Wert.</p>
<p>Ich kann es mir auf jeden Fall nicht erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752856</guid><dc:creator><![CDATA[th3AddY]]></dc:creator><pubDate>Fri, 31 Jul 2009 10:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 10:46:44 GMT]]></title><description><![CDATA[<p>Dann kommt die nächste Wette:<br />
Du hast nicht überprüft, ob das File auch erstellt wurde.</p>
<p>Daher ist der Stream ungültig beim Schreiben und es wird nichts rausgeschrieben und beim Lesen ist er nicht offen, bzw. auch ungültig, weshalb nichts gelesen wird, wodurch du uninitialisierte Werte ausgegeben hast.</p>
<p>Das ganze hängt mit den Flags beim Öffnen von <code>std::fstream</code> zusammen:<br />
<a href="http://www.cplusplus.com/reference/iostream/ios_base/openmode/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ios_base/openmode/</a></p>
<p>Ein <code>std::fstream</code> ist zum Lesen und Schreiben da. Nimm lieber zum Lesen einen <code>std::ifstream</code> und zum Schreiben einen <code>std::ofstream</code> . Oder gib die richtigen Flags explizit an.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752867</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 31 Jul 2009 10:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Datei gibt nicht das aus, womit ich sie beschrieben habe on Fri, 31 Jul 2009 11:10:42 GMT]]></title><description><![CDATA[<p>Okay, jetzt funktioniert es. <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>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752875</guid><dc:creator><![CDATA[th3AddY]]></dc:creator><pubDate>Fri, 31 Jul 2009 11:10:42 GMT</pubDate></item></channel></rss>