<?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[Hilfe! ifstream.read() liefert fälschlich EOF]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe einen wirklich strangen Fehler: Ich will aus einer Datei run 50.000 daten (short int) auslesen.</p>
<pre><code class="language-cpp">short int s;

for (int j=0; j&lt;50000; ++j)
    {ifs.read((char*)&amp;s, (sizeof(short int))); 
     cout &lt;&lt; j &lt;&lt; &quot; &quot; &lt;&lt; s &lt;&lt; endl;
     cout &lt;&lt; ifs.eof() &lt;&lt; &quot; &quot; &lt;&lt; ifs.fail() &lt;&lt; &quot; &quot;;
     cout &lt;&lt; ifs.good()&lt;&lt; &quot; &quot; &lt;&lt; ifs.bad() &lt;&lt; endl;
    }
</code></pre>
<p>Klappt bei den ersten 50, aber dann findet der stream ein EOF und hört auf. Aber da ist kein EOF!!! Da stehen wirklich 50.000 Daten drin. Hab mit einem Hex-editor nachgeschaut. Außerdem: Dasselbe Programm funktioniert mit derselben Datei unter Linux tadellos! Woran könnte das liegen? Und was soll ich tun? Gibt es andere Möglichkeiten Daten einzulesen? Dieses ganze mmio-Zeugs?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/124312/hilfe-ifstream-read-liefert-fälschlich-eof</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 21:55:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/124312.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Oct 2005 13:17:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe! ifstream.read() liefert fälschlich EOF on Wed, 26 Oct 2005 13:17:14 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe einen wirklich strangen Fehler: Ich will aus einer Datei run 50.000 daten (short int) auslesen.</p>
<pre><code class="language-cpp">short int s;

for (int j=0; j&lt;50000; ++j)
    {ifs.read((char*)&amp;s, (sizeof(short int))); 
     cout &lt;&lt; j &lt;&lt; &quot; &quot; &lt;&lt; s &lt;&lt; endl;
     cout &lt;&lt; ifs.eof() &lt;&lt; &quot; &quot; &lt;&lt; ifs.fail() &lt;&lt; &quot; &quot;;
     cout &lt;&lt; ifs.good()&lt;&lt; &quot; &quot; &lt;&lt; ifs.bad() &lt;&lt; endl;
    }
</code></pre>
<p>Klappt bei den ersten 50, aber dann findet der stream ein EOF und hört auf. Aber da ist kein EOF!!! Da stehen wirklich 50.000 Daten drin. Hab mit einem Hex-editor nachgeschaut. Außerdem: Dasselbe Programm funktioniert mit derselben Datei unter Linux tadellos! Woran könnte das liegen? Und was soll ich tun? Gibt es andere Möglichkeiten Daten einzulesen? Dieses ganze mmio-Zeugs?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901174</guid><dc:creator><![CDATA[Esa_mmr]]></dc:creator><pubDate>Wed, 26 Oct 2005 13:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! ifstream.read() liefert fälschlich EOF on Wed, 26 Oct 2005 13:28:20 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=9713" rel="nofollow">estartu_de</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=1" rel="nofollow">MFC (Visual C++)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/901185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901185</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 26 Oct 2005 13:28:20 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! ifstream.read() liefert fälschlich EOF on Wed, 26 Oct 2005 13:37:46 GMT]]></title><description><![CDATA[<p>Hast Du die Datei auch binär geöffnet? (hmm... auch wenn das read nicht sonderlich jucken sollte)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901192</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Wed, 26 Oct 2005 13:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! ifstream.read() liefert fälschlich EOF on Wed, 26 Oct 2005 13:53:19 GMT]]></title><description><![CDATA[<p>7H3 N4C3R schrieb:</p>
<blockquote>
<p>Hast Du die Datei auch binär geöffnet? (hmm... auch wenn das read nicht sonderlich jucken sollte)</p>
</blockquote>
<p>Hallo 7H3 N4C3R,</p>
<p>danke für diesen einfachen, aber genialen Tip. Daran lags wirklich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Einfach ios::binary beim Konstruktor angegeben ... und schon flutscht es. Also Danke nochmal.<br />
Wie gesagt, unter Linux hab ich das ios::binary seit Jahren immer weggelassen, aber da hat es nicht zu so etwas geführt. Werde es jetzt immer richtig machen <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>Viele Grüße!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901206</guid><dc:creator><![CDATA[Esa_mmr]]></dc:creator><pubDate>Wed, 26 Oct 2005 13:53:19 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! ifstream.read() liefert fälschlich EOF on Wed, 26 Oct 2005 13:59:11 GMT]]></title><description><![CDATA[<p>Könnte mit der unteschiedlichen Behandlung von Textdateien unter Windows und Linux zusammenhängen (genauer, mit dem Zeilenwechsel: C-intern '\n', Linux '\n', Windows '\r\n' (und Mac '\n\r')) - der wird im Textmodus beim Lesen/Schreiben je nach Betriebssystem umgerechnet (und zerlegt dann eventuell deine Binärdarstellung).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901213</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 26 Oct 2005 13:59:11 GMT</pubDate></item></channel></rss>