<?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[Einlesen von Dateien mit ifstream klappt nicht]]></title><description><![CDATA[<pre><code class="language-cpp">ofstream FileOut;
  FileOut.open(&quot;/home/matthias/Documents/Dev/streams/ausgabe.dat&quot;);
  FileOut.flags(ios::right);
  if (FileOut)  
  {
    for (int i=0;  i&lt;=10; i++)
    { 
      FileOut &lt;&lt; hex &lt;&lt; setw(5) &lt;&lt; i &lt;&lt; endl;
      cout &lt;&lt; hex &lt;&lt; setw(5) &lt;&lt; i &lt;&lt; endl;
    }
  }
  else 
  {  
    cout &lt;&lt; &quot;Datei konnte nicht geöffnet werden&quot; &lt;&lt; endl;
  }
  FileOut.close();

  ifstream FileIn;
  FileIn.open(&quot;/home/matthias/Documents/Dev/streams/ausgabe.dat&quot;);
  FileIn.flags(ios::right);
  int ibuff;
  if (FileIn)
  {
    int i=0;
    while (!FileIn.eof())
    { 
      i++;
      FileIn &gt;&gt; hex &gt;&gt; ibuff;
      cout &lt;&lt; dec &lt;&lt; i &lt;&lt; &quot; &quot;;
      cout &lt;&lt; hex &lt;&lt; setw(5) &lt;&lt; ibuff &lt;&lt; endl;
    }
    FileIn.close();
  }
</code></pre>
<p>gibt mir eine Datei mit dem Inhalt (mit 4 Leerzeichen vor den Zahlen!)</p>
<blockquote>
<p>0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
a</p>
</blockquote>
<p>Beim Einlesen bekomme ich jedoch unsinnige riesige Werte und das Programm bricht nicht ab, zählt also i in die zig-tausende hoch.</p>
<p>Was ist falsch ? Und was wird überhaupt eingelesen ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179498/einlesen-von-dateien-mit-ifstream-klappt-nicht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 06:20:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179498.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Apr 2007 15:29:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einlesen von Dateien mit ifstream klappt nicht on Sun, 22 Apr 2007 15:31:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ofstream FileOut;
  FileOut.open(&quot;/home/matthias/Documents/Dev/streams/ausgabe.dat&quot;);
  FileOut.flags(ios::right);
  if (FileOut)  
  {
    for (int i=0;  i&lt;=10; i++)
    { 
      FileOut &lt;&lt; hex &lt;&lt; setw(5) &lt;&lt; i &lt;&lt; endl;
      cout &lt;&lt; hex &lt;&lt; setw(5) &lt;&lt; i &lt;&lt; endl;
    }
  }
  else 
  {  
    cout &lt;&lt; &quot;Datei konnte nicht geöffnet werden&quot; &lt;&lt; endl;
  }
  FileOut.close();

  ifstream FileIn;
  FileIn.open(&quot;/home/matthias/Documents/Dev/streams/ausgabe.dat&quot;);
  FileIn.flags(ios::right);
  int ibuff;
  if (FileIn)
  {
    int i=0;
    while (!FileIn.eof())
    { 
      i++;
      FileIn &gt;&gt; hex &gt;&gt; ibuff;
      cout &lt;&lt; dec &lt;&lt; i &lt;&lt; &quot; &quot;;
      cout &lt;&lt; hex &lt;&lt; setw(5) &lt;&lt; ibuff &lt;&lt; endl;
    }
    FileIn.close();
  }
</code></pre>
<p>gibt mir eine Datei mit dem Inhalt (mit 4 Leerzeichen vor den Zahlen!)</p>
<blockquote>
<p>0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
a</p>
</blockquote>
<p>Beim Einlesen bekomme ich jedoch unsinnige riesige Werte und das Programm bricht nicht ab, zählt also i in die zig-tausende hoch.</p>
<p>Was ist falsch ? Und was wird überhaupt eingelesen ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271183</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Sun, 22 Apr 2007 15:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen von Dateien mit ifstream klappt nicht on Mon, 23 Apr 2007 06:21:32 GMT]]></title><description><![CDATA[<p>Erstens: Die Ausrichtung ist für einen Eingabe-Stream irrelevant.</p>
<p>Zweitens: Die beschriebene Ausgabe passt doch genau zu deinem Quelltext - du gibst die Zahlen 0 bis 10 rechtsbündig mit 5 Zeichen Breite aus.</p>
<p>Drittens: Eventuell solltest du auch Einlese-Fehler abfangen <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/1271468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271468</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Apr 2007 06:21:32 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen von Dateien mit ifstream klappt nicht on Mon, 23 Apr 2007 06:37:08 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Erstens: Die Ausrichtung ist für einen Eingabe-Stream irrelevant.</p>
</blockquote>
<p>Ok</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Zweitens: Die beschriebene Ausgabe passt doch genau zu deinem Quelltext - du gibst die Zahlen 0 bis 10 rechtsbündig mit 5 Zeichen Breite aus.</p>
</blockquote>
<p>Schon klar.</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Drittens: Eventuell solltest du auch Einlese-Fehler abfangen <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>
</blockquote>
<p>Das war der Kern der Frage - wie Fange ich ab, dass FileIn.eof() nie zutrifft ? Und warum kann das passieren ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271473</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Mon, 23 Apr 2007 06:37:08 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen von Dateien mit ifstream klappt nicht on Mon, 23 Apr 2007 06:41:48 GMT]]></title><description><![CDATA[<p>pospiech schrieb:</p>
<blockquote>
<p>Und warum kann das passieren ?</p>
</blockquote>
<p>Weil du nie erfolgreich einliest. Jeder Einlesevorgang schlägt fehl, das Dateiende wird nie erreicht.</p>
<p>eof ist als Schleifenbedingung sowieso ungeeignet, weil es erst dann true liefert, wenn schon ein Einlesevorgang fehlgeschlagen ist. Benutz einfach deinen Einleseausdruck (FileIn &gt;&gt; hex &gt;&gt; ibuff) als Schleifenbedingung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271477</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 23 Apr 2007 06:41:48 GMT</pubDate></item></channel></rss>