<?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[istream::tellg bricht Schleife ab]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>in folgendem Code wird die Schleife immer abgebrochen, wenn Zeile 5 eingefügt wird. Das heißt, sie läuft ein mal durch, Zeile 5 wird auch noch ausgeführt, aber dann bricht sie ab.</p>
<pre><code class="language-cpp">while(datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin){
        if(monat==auswahl_monat &amp;&amp; jahr==auswahl_jahr){
            cout &lt;&lt; id &lt;&lt; &quot;\t&quot; &lt;&lt; tag &lt;&lt; &quot;\t&quot; &lt;&lt; uhrzeit1 &lt;&lt; &quot;\t&quot; &lt;&lt; uhrzeit2 &lt;&lt; &quot;\t&quot; &lt;&lt; pause &lt;&lt; &quot;\t&quot; &lt;&lt; soll &lt;&lt; &quot;\t&quot; &lt;&lt; diffmin &lt;&lt; endl;
            id++;
            pos = datei.tellg();
        }

    }
</code></pre>
<p>Wer weiß rat bzw. kann mir erklären, warum das so läuft.</p>
<p>Schöne Grüße</p>
<p>Julius</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304680/istream-tellg-bricht-schleife-ab</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 05:58:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304680.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2012 11:11:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 11:11:04 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>in folgendem Code wird die Schleife immer abgebrochen, wenn Zeile 5 eingefügt wird. Das heißt, sie läuft ein mal durch, Zeile 5 wird auch noch ausgeführt, aber dann bricht sie ab.</p>
<pre><code class="language-cpp">while(datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin){
        if(monat==auswahl_monat &amp;&amp; jahr==auswahl_jahr){
            cout &lt;&lt; id &lt;&lt; &quot;\t&quot; &lt;&lt; tag &lt;&lt; &quot;\t&quot; &lt;&lt; uhrzeit1 &lt;&lt; &quot;\t&quot; &lt;&lt; uhrzeit2 &lt;&lt; &quot;\t&quot; &lt;&lt; pause &lt;&lt; &quot;\t&quot; &lt;&lt; soll &lt;&lt; &quot;\t&quot; &lt;&lt; diffmin &lt;&lt; endl;
            id++;
            pos = datei.tellg();
        }

    }
</code></pre>
<p>Wer weiß rat bzw. kann mir erklären, warum das so läuft.</p>
<p>Schöne Grüße</p>
<p>Julius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222332</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Tue, 12 Jun 2012 11:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 12:04:12 GMT]]></title><description><![CDATA[<p>Bitte gib uns ein vollständiges Beispiel, an dem wir deinen Fehler nachvollziehen können. Gerade da Zeile 5 doch eher unverdächtig aussieht ist hier zu erwarten, dass etwas unerwartetes passiert <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2222346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222346</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 12 Jun 2012 12:04:12 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 12:24:20 GMT]]></title><description><![CDATA[<p>Hallo Julius,</p>
<p>tellg liefert die Position im Streambuf. Es ist aber nicht garantiert, dass dieses Feature auch von jedem Streambuf (der quasi unter/hinter dem Stream liegt) unterstützt wird. Stell Dir vor, die Daten, die Du da liest kämen über eine Serielle Schnittstelle, also immer nur 1 Zeichen nach dem anderen - da macht so etwas wie tellg und seek keinen Sinn.<br />
In diesem Fall liefert tellg den Wert -1. In Deinem Fall scheint es so zu sein, dass tellg zusätzlich den istream in den Fehlerzustand setzt.<br />
Schaue bitte mal nach welchen Wert ' <code>pos</code> ' annimmt.</p>
<p>Mit welcher Entwicklungsumgebung arbeitest Du?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222354</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 12 Jun 2012 12:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 14:23:13 GMT]]></title><description><![CDATA[<p>Ich komme mit dem Code irgendwie nicht durch den Spamschutz.</p>
<p>Vorher kommt jedenfalls:</p>
<pre><code class="language-cpp">int id = 1;
    long pos;
    eingeben_jahr();
    eingeben_monat();
    auswahl_jahr = jahr;
    auswahl_monat = monat;
    system(&quot;cls&quot;);
    cout &lt;&lt; &quot;ID\tTag\tBeginn\tEnde\tPause\tSoll\tUberstunden&quot; &lt;&lt; endl &lt;&lt; endl;
    ifstream datei(&quot;liste&quot;);
</code></pre>
<p>pos 236 (die Stelle, an der sich der putpointer befindet?).</p>
<p>Und ich bin Anfänger und verstehe deinen Post nicht richtig (Werner).</p>
<p>Ich benutze Windows 7, Codeblocks und den GNU GCC Compiler.</p>
<p>Falls ich völlig an der Frage vorbeigeantwortet habe, bitte ich um Tadel. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Schöne Grüße und Danke</p>
<p>Julius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222397</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Tue, 12 Jun 2012 14:23:13 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 21:14:36 GMT]]></title><description><![CDATA[<p>Hallo Julius,</p>
<p>lass es mich noch mal zusammen fassen: Du behauptest, dass Dein Programm fuinktioniert, also mehr als einen Datensatz aus der Datei liest und ausgibt, wenn die Zeile 5 in Deinem ersten Listing auskommentiert ist. Aktivierst Du dann die Zeile 5</p>
<pre><code class="language-cpp">pos = datei.tellg();
</code></pre>
<p>, dann läuft die Schleife nur noch genau einmal durch - und das obwohl 'pos' den Wert von 236!=-1 annimmt.</p>
<p>Also um ehrlich zu sein - Du musst Dich vertan haben. Prüfe das, was ich geschrieben habe, bitte noch mal so nach, ob das auch passt.<br />
Ansonsten füge folgende Zeilen ein:</p>
<pre><code class="language-cpp">while(datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin){
        if(monat==auswahl_monat &amp;&amp; jahr==auswahl_jahr){
            cout &lt;&lt; id &lt;&lt; &quot;\t&quot; &lt;&lt; tag &lt;&lt; &quot;\t&quot; &lt;&lt; uhrzeit1 &lt;&lt; &quot;\t&quot; &lt;&lt; uhrzeit2 &lt;&lt; &quot;\t&quot; &lt;&lt; pause &lt;&lt; &quot;\t&quot; &lt;&lt; soll &lt;&lt; &quot;\t&quot; &lt;&lt; diffmin &lt;&lt; endl;
            id++;
            cout &lt;&lt; &quot;&gt; datei.fail()=&quot; &lt;&lt; datei.fail() &lt;&lt; endl; // &lt;- neu
            pos = datei.tellg();
            cout &lt;&lt; &quot;&gt; pos=&quot; &lt;&lt; pos &lt;&lt; endl; // &lt;- neu
            cout &lt;&lt; &quot;&gt; datei.fail()=&quot; &lt;&lt; datei.fail() &lt;&lt; endl; // &lt;- neu
        }

    }
</code></pre>
<p>.. und berichte uns, wie die Ausgabe ist.</p>
<p>js707 schrieb:</p>
<blockquote>
<p>Und ich bin Anfänger und verstehe deinen Post nicht richtig (Werner).</p>
</blockquote>
<p>und wenn Du konkrete Fragen stellst, kann ich die auch gerne beantworten <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>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222561</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 12 Jun 2012 21:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 21:34:00 GMT]]></title><description><![CDATA[<p>Hey Werner,</p>
<p>danke für die Hilfe.</p>
<p>Folgende Ausgabe kommt heraus:</p>
<blockquote>
<p>&gt; datei.fail()=0<br />
&gt; pos=236<br />
&gt; datei.fail()=0</p>
</blockquote>
<p>Schöne Grüße</p>
<p>Julius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222563</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Tue, 12 Jun 2012 21:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Tue, 12 Jun 2012 22:07:06 GMT]]></title><description><![CDATA[<p>Hallo Julius,</p>
<p>.. dann darf das Einfügen oder Weglassen von Zeile 5 auch keinen Unterschied machen, was die Anzahl der Schleifendurchläufe betrifft. Da ist irgendwas anderes nicht ok, was Du uns noch nicht gesagt hast.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222570</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 12 Jun 2012 22:07:06 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Wed, 13 Jun 2012 07:04:28 GMT]]></title><description><![CDATA[<p>Schau mal in SeppJs Post und Signatur. Oder in meine. Oder halte dich an den guten Ton im Netz und in Foren wie diesen und lies dir vorm Posten die mit <strong>wichtig</strong> gekennzeichneten Threads durch. Wird dich alles zu der gleichen Erkenntnis führen, dass man dir mit den paar Infos die du lieferst nicht helfen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222601</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 13 Jun 2012 07:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Wed, 13 Jun 2012 07:06:20 GMT]]></title><description><![CDATA[<p>Vielleicht lohnt es sich, die Werte noch mal außerhalb der Bedingung auszugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222602</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 13 Jun 2012 07:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Wed, 13 Jun 2012 07:16:34 GMT]]></title><description><![CDATA[<p>Die Abbruchbedingung in der while-Schleife erscheint mir zu kompliziert. Verlagere die Eingabe aus der Datei in die Schleife und prüfe dort auf Abbruch oder Fortsetzung. Entweder verwende eine logische Variable im while-Kopf oder break / continue innerhalb der Schleife.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222603</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Wed, 13 Jun 2012 07:16:34 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Wed, 13 Jun 2012 07:53:16 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>Die Abbruchbedingung in der while-Schleife erscheint mir zu kompliziert.</p>
</blockquote>
<p>Häh? Die Abbruchbedingung ist einfach der Status des Streams. Solange der Stream okay ist, wird die Schleife ausgeführt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222617</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 13 Jun 2012 07:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Wed, 13 Jun 2012 09:47:29 GMT]]></title><description><![CDATA[<p>Meine vielleicht unmassgebliche Meinung: Lieber ein paar Codezeilen mehr mit besser kontrollierbarem Ablauf des Programmes. Dann brauche ich keine solche Fragen hier zu stellen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222670</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Wed, 13 Jun 2012 09:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Wed, 13 Jun 2012 09:53:04 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>Meine vielleicht unmassgebliche Meinung: Lieber ein paar Codezeilen mehr mit besser kontrollierbarem Ablauf des Programmes. Dann brauche ich keine solche Fragen hier zu stellen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Wie würdest du es denn besser machen?</p>
<p>So?</p>
<pre><code class="language-cpp">while(true)
{
 datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin;
 if (!datei)
  break!

 rest_der_schleife();
}
</code></pre>
<p>Das wäre schon ein Antipattern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222674</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 13 Jun 2012 09:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 10:03:30 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ich habe jetzt zum Ausprobieren eine einfachere Bedingung im Schleifenkopf genommen und die Bedingung weggelassen.</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">while(id&lt;4){
        datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin;
        pos = datei.tellg();
        cout &lt;&lt; &quot;ID = &quot; &lt;&lt;id &lt;&lt; &quot; datei.fail() = &quot; &lt;&lt; datei.fail() &lt;&lt; &quot; pos = &quot; &lt;&lt; pos &lt;&lt; endl;
        id++;
        }
</code></pre>
<p>Ergibt folgende Ausgabe:</p>
<pre><code>ID = 1 datei.fail() = 0 pos = 44
ID = 2 datei.fail() = 1 pos = -1
ID = 3 datei.fail() = 1 pos = -1
</code></pre>
<p>Was bedeutet das?</p>
<p>Schöne Grüße</p>
<p>Julius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223045</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Thu, 14 Jun 2012 10:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 10:15:39 GMT]]></title><description><![CDATA[<p>Das bedeutet, dass ID 2 und 3 bei dir fehlerhaft waren und die Position deshalb -1 ist, also so gesehen keine Positionen sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223048</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 14 Jun 2012 10:15:39 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 11:10:24 GMT]]></title><description><![CDATA[<p>Das bedeutet, dass Du nur einmal ordentlich aus der Datei lesen konntest. Beim zweiten Leseversuch geht irgendwas schief.<br />
Gib das auch noch mal vor dem tellg aus, damit man sieht, ob der Stream beim Lesen oder erst beim tellg - Aufruf auf fehlerhaft gesetzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223064</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 14 Jun 2012 11:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 11:11:11 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">while(true)
{
 datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin;
 if (!datei)
  break!
 
 rest_der_schleife();
}
</code></pre>
<p>Das wäre schon ein Antipattern.</p>
</blockquote>
<p>Schöner Anticode zum Abgewöhnen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Der Fragesteller scheint aber langsam dahin zu kommen, wo er hin will?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223065</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Thu, 14 Jun 2012 11:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 11:18:06 GMT]]></title><description><![CDATA[<p>Neuer Code:</p>
<pre><code class="language-cpp">while(id&lt;4){
        datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin;
        cout &lt;&lt; &quot;VOR tellg:\tID = &quot; &lt;&lt;id &lt;&lt; &quot; datei.fail() = &quot; &lt;&lt; datei.fail() &lt;&lt; &quot; pos = &quot; &lt;&lt; pos &lt;&lt; endl;
        pos = datei.tellg();
        cout &lt;&lt; &quot;NACH tellg:\tID = &quot; &lt;&lt;id &lt;&lt; &quot; datei.fail() = &quot; &lt;&lt; datei.fail() &lt;&lt; &quot; pos = &quot; &lt;&lt; pos &lt;&lt; endl;
        id++;

    }
</code></pre>
<p>Ausgabe:</p>
<pre><code>VOR tellg:    ID = 1 datei.fail() = 0 pos = 0
NACH tellg:   ID = 1 datei.fail() = 0 pos = 44
VOR tellg:    ID = 2 datei.fail() = 1 pos = 44
NACH tellg:   ID = 2 datei.fail() = 1 pos = -1
VOR tellg:    ID = 3 datei.fail() = 1 pos = -1
NACH tellg:   ID = 3 datei.fail() = 1 pos = -1
</code></pre>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223070</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Thu, 14 Jun 2012 11:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 11:36:50 GMT]]></title><description><![CDATA[<p>Also beim zweiten Lesen geht etwas schief, da danach das failbit gesetzt ist ...<br />
Gib bitte zusätzlich zu datei.fail() noch datei.eof() und datei.bad() aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223078</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 14 Jun 2012 11:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 12:13:32 GMT]]></title><description><![CDATA[<p>Neuer Code:</p>
<pre><code class="language-cpp">while(id&lt;3){
        datei &gt;&gt; tag &gt;&gt; monat &gt;&gt; jahr &gt;&gt; uhrzeit1 &gt;&gt; uhrzeit2 &gt;&gt; pause &gt;&gt; soll &gt;&gt; diffmin;
        cout &lt;&lt; &quot;VOR tellg:\tID = &quot; &lt;&lt;id &lt;&lt; &quot; datei.eof()=&quot; &lt;&lt; datei.eof() &lt;&lt; &quot; datei.bad()=&quot; &lt;&lt; datei.bad() &lt;&lt;&quot; datei.fail()=&quot; &lt;&lt; datei.fail() &lt;&lt; &quot; pos = &quot; &lt;&lt; pos &lt;&lt; endl;
        pos = datei.tellg();
        cout &lt;&lt; &quot;NACH tellg:\tID = &quot; &lt;&lt;id &lt;&lt; &quot; datei.eof()=&quot; &lt;&lt; datei.eof() &lt;&lt; &quot; datei.bad()=&quot; &lt;&lt; datei.bad() &lt;&lt;&quot; datei.fail()=&quot; &lt;&lt; datei.fail() &lt;&lt; &quot; pos = &quot; &lt;&lt; pos &lt;&lt; endl;
        id++;

    }
</code></pre>
<p>Ausgabe:</p>
<pre><code>VOR tellg:    ID = 1 datei.eof()=0 datei.bad()=0 datei.fail()=0 pos = 0
NACH tellg:   ID = 1 datei.eof()=0 datei.bad()=0 datei.fail()=0 pos = 44
VOR tellg:    ID = 2 datei.eof()=0 datei.bad()=0 datei.fail()=1 pos = 44
NACH tellg:   ID = 2 datei.eof()=0 datei.bad()=0 datei.fail()=1 pos = -1
</code></pre>
<p>Vielen Dank für die bisherige Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223094</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Thu, 14 Jun 2012 12:13:32 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 13:32:07 GMT]]></title><description><![CDATA[<p>Ich wollte nur kurz mitteilen, dass ich gesehen habe, dass die Fehler nur unter bestimmten Bedingungen bzgl. des Inhalts der Datei kommen.</p>
<p>Ich versuche den Fehler mal zu finden und schreibe, wenn ich eine Lösung habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223141</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:32:07 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 13:34:16 GMT]]></title><description><![CDATA[<p>Okay, bad und eof sind nicht gesetzt, aber fail ist gesetzt. Ich würde vermuten, dass in der Datei etwas zu lesen ansteht, das nicht zu dem Datentyp passt, in den Du einlesen willst. Also möglicherweise ist die Variable tag vom Typ int, in der Datei folgt aber keine Ziffer, irgendsoetwas muss es sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223148</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 14:07:55 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@Belli</a>:</p>
<p>Wenn datei.tellg() nicht verwendet wird, funktioniert ja alles und wir richtig eingelesen und auch ausgegeben.</p>
<p>Ich sehe gerade, dass da einiges komisch läuft:</p>
<p>datei.tellg() z.B. in der ersten Zeile, die eingelesen und ausgegeben wird nimmt den Wert datei.tellg()+1 an, wenn eine weitere Zeile in die Datei geschrieben wurde und diese dann eingelesen und ausgegeben wird. Füge ich noch weiter Zeilen hinzu, so wird datei.tellg() an dieser Stelle immer um 1 erhöht.</p>
<p>Dann passiert noch was komisches: Wenn 2 Zeilen in der Datei sind, wird die 1. korrekt ausgegeben. Die 2. nicht.<br />
Schreibe ich weitere Zeilen in die Datei, so werden nur die 1. und die letzte Zeile richtig eingelesen und ausgegeben (die Zeilen dazwischen nicht).</p>
<p>Wenn diffmin in einer Zeile negativ ist, so wird diese zwar wie vorher ausgegeben (als letzte Zeile), allerdings läuft der ganze Loop nur noch ein mal, wenn ich dann (nach dem negativen diffmin) noch eine weitere Zeile anhänge (mit positivem diffmin).</p>
<p><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="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223167</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Thu, 14 Jun 2012 14:07:55 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 14:31:30 GMT]]></title><description><![CDATA[<p>Das klingt alles sehr komisch. Ich schlage vor, Du kürzt Dein Programm auf ein paar Zeilen (max 100) so, dass es vollständig kompilierbar ist, und das Problem noch aufweist. Dann postest Du dieses Programm hier, und zusätzlich die ersten paar Zeilen Deiner Eingabedatei.<br />
Vielleicht findet sich dann jemand, der das selbst mal ausprobiert und helfen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223173</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 14 Jun 2012 14:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 14:51:45 GMT]]></title><description><![CDATA[<p>js707 schrieb:</p>
<blockquote>
<p>Dann passiert noch was komisches: Wenn 2 Zeilen in der Datei sind, wird die 1. korrekt ausgegeben. Die 2. nicht.<br />
Schreibe ich weitere Zeilen in die Datei, so werden nur die 1. und die letzte Zeile richtig eingelesen und ausgegeben (die Zeilen dazwischen nicht).</p>
</blockquote>
<p>Moment! Heißt das, du hast die Datei zum gleichzeitigen Lesen und schreiben geöffnet und schreibst gleichzeitig noch? Meinst du nicht, dass das relevant für deine Frage gewesen wäre?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223176</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Jun 2012 14:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to istream::tellg bricht Schleife ab on Thu, 14 Jun 2012 16:53:17 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>: Mit dem Schreiben meine ich Verändern der Datei von Hand per Editor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223228</guid><dc:creator><![CDATA[js707]]></dc:creator><pubDate>Thu, 14 Jun 2012 16:53:17 GMT</pubDate></item></channel></rss>