<?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[Highscore speichern]]></title><description><![CDATA[<p>Hi<br />
Ich habe eins Snake Spiel geschrieben und möchte nun den highscore speichern (nur die besten 10). Ich weia wie man den score in eine datei schreibt (ofstream)aber nicht , wie ich vergleichen soll, ob der score ob der score größer ist als der niedrigste von den 10. Wenn ich versuche, die scores auszulesen gibt das nur scores von 1-9 aus. Kann mir vlt einer von euch helfen? Danke <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/topic/317265/highscore-speichern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 01:19:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317265.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Jun 2013 13:31:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 13:31:16 GMT]]></title><description><![CDATA[<p>Hi<br />
Ich habe eins Snake Spiel geschrieben und möchte nun den highscore speichern (nur die besten 10). Ich weia wie man den score in eine datei schreibt (ofstream)aber nicht , wie ich vergleichen soll, ob der score ob der score größer ist als der niedrigste von den 10. Wenn ich versuche, die scores auszulesen gibt das nur scores von 1-9 aus. Kann mir vlt einer von euch helfen? Danke <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/2328009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328009</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Sun, 02 Jun 2013 13:31:16 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 13:37:25 GMT]]></title><description><![CDATA[<p>Dann wirst du wohl was falsch gemacht haben. Zeig Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328015</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 02 Jun 2013 13:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 13:53:06 GMT]]></title><description><![CDATA[<pre><code>ifstream datei(&quot;score.txt&quot;, ios_base::in);
vector&lt;int&gt; sc;
int n;

if(!datei)
{
	cerr &lt;&lt; &quot;Fehler beim oeffnen!&quot;;
}

while(!datei.eof())
{
 //weis nicht so richtig wie ich das einlesen soll			
}
sort(sc.begin(),sc.end());

...

ofstream dat(&quot;score.txt&quot;, ios_base::out | ios_base::app);

dat &lt;&lt; score;	

	for(int i = 1;  i &lt; sc.size() &amp;&amp; i &lt; 10; i++)
	{
		cout &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; sc[i-1] &lt;&lt; endl;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2328018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328018</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Sun, 02 Jun 2013 13:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 14:31:26 GMT]]></title><description><![CDATA[<blockquote>
<pre><code>while(!datei.eof())
{
 //weis nicht so richtig wie ich das einlesen soll         
}
</code></pre>
</blockquote>
<p>Schonmal komplett falscher Ansatz. <strong>Erst</strong> lesen, <strong>dann</strong> prüfen, <strong>dann</strong>, bei Erfolg, verarbeiten.<br />
Hier zum Beispiel:</p>
<pre><code>for(int score; datei &gt;&gt; score;)
{
  sc.push_back(score);
}
</code></pre>
<p>So wird erst gelesen ( <code>datei &gt;&gt; score</code> ), dann auf Erfolg geprüft (Rückgabewert von <code>datei &gt;&gt; score</code> ) und dann erst das korrekt gelesene <code>score</code> verarbeitet.</p>
<blockquote>
<pre><code>dat &lt;&lt; score;
</code></pre>
</blockquote>
<p>Ein Trennzeichen wäre gut, sonst bekommst du die Daten hinterher nicht mehr auseinander. Zum Beispiel ein Leerzeichen oder ein Zeilenumbruch.</p>
<p>Insgesamt passt dein Algorithmus nicht zu deiner Beschreibung. Du hängst den neuen Spielstand einfach hinten dran. Du möchtest doch wohl eher den neuen Spielstand an passender Stelle in die Liste einfügen und dann die komplette Datei mit den besten zehn Punkteständen überschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328025</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 02 Jun 2013 14:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 15:41:38 GMT]]></title><description><![CDATA[<p>Danke <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="🙂"
    /> jetzt gehts <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 />
aber wie sortiere ich den Vector, dass am Anfang die höchste Zahl steht und am ende die niedrigste?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328037</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Sun, 02 Jun 2013 15:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 15:47:41 GMT]]></title><description><![CDATA[<p>mit std::sort siehe: <a href="http://en.cppreference.com/w/cpp/algorithm/sort" rel="nofollow">http://en.cppreference.com/w/cpp/algorithm/sort</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328040</guid><dc:creator><![CDATA[stefkowa]]></dc:creator><pubDate>Sun, 02 Jun 2013 15:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 16:00:07 GMT]]></title><description><![CDATA[<p>stefkowa schrieb:</p>
<blockquote>
<p>mit std::sort siehe: <a href="http://en.cppreference.com/w/cpp/algorithm/sort" rel="nofollow">http://en.cppreference.com/w/cpp/algorithm/sort</a></p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Ja, aber da muss das Prädikat <code>std::greater&lt;int&gt;()</code> sein.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<pre><code>vector&lt;int&gt; sc;
// [...]
std::sort( sc.begin(), sc.end(), std::greater&lt;int&gt;() );
</code></pre>
<p>(Ungetestet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328046</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 02 Jun 2013 16:00:07 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 16:34:57 GMT]]></title><description><![CDATA[<p>Vllt hilft es dir auch zuerst ein Paar Gedanken zu machen. Z.B. wie deine Score-Datei aussehen soll.<br />
Ich denke eine einfache Lösung wäre folgender Aufbau:</p>
<pre><code>Tom:8
Spieler 2:7
Max:5
</code></pre>
<p>Dann liest du die Datei ein:</p>
<pre><code>map&lt;string,int&gt;	name_score;							//brauchen wir später...

ifstream in(&quot;score.txt&quot;);							//Textdatei wird geöffnet
if(!in)										//Öffnen schlägt fehl
{
	/*Fehler verarbeiten, z.B. mit entsprechender Ausgabe*/
}
else
{
	while(!in.eof())							//Alle Zeilen der Textdatei lesen
	{
		string line;							//In string line kommt jeweils zu bearbeitende Zeile
		getline(in, line);						//Die Zeile wird aus dem ifstream geholt

		if(line.empty() || line[0] = c	)				//Ist die Zeile leer oder auskommentiert, wobei char c = '#', z.B. ein Zeichen für eine Kommentarzeile
			continue;						//In die nächste Zeile...

		string::size_type split = line.find(&quot;:&quot;);			//Die Zeile beim &quot;:&quot; zerteilen (!!! D.H. DIE NICKNAMES DÜRFEN KEIN &quot;:&quot; ENTHALTEN!!!)
		if(split == string::npos)					//&quot;:&quot; wurde nicht gefunden...
			continue;						// ... Zeile also fehlerhaft und wird übersprungen

		string::size_type nick_begin = line.find_first_not_of(&quot; &quot;);	//Das erste Zeichen in der Zeile, das kein Leerzeichen ist, MUSS das erste Zeichen des Nicknames sein...
		string::size_type nick_end = split - 1;				// ... d.h. der Nickname muss ein Zeichen (deswegen -1) vor dem &quot;:&quot; enden.
		string::size_type score_begin = split + 1;			//Das erste Zeichen nach dem &quot;:&quot; muss der Anfang des Scores sein.
		string::size_type score_end = line.size();			//Das Ende des Scores muss die Länge der Zeile sein

		if(score_begin != string::npos)					//Zeile nach Zerteilen NICHT fehlerhaft
		{
			string score = line.substr(score_begin, score_end - score_begin); //neue Variable für Übersichtlichkeit; erstes Argument von substr: Substring von WO, zweites Argument: LÄNGE des Substrings.

			name_score[line.substr(nick_begin, nick_end - nick_begin)] = atoi(t.c_str()) //s.o.;
		}
	}									

	in.close();								//ifstream wird geschlossen
}
</code></pre>
<p>So kannst du das Ganze nun aufrufen:</p>
<pre><code>//entweder:
string player = &quot;Tom&quot;;							//Falls du konkrete Namen überprüfen willst

if(name_score.find(player) != name_score.end())				//Wert wurde in der map gefunden
	cout &lt;&lt; &quot;Spieler &quot; &lt;&lt; player &lt;&lt; &quot; hat &quot; &lt;&lt; name_score[player] &lt;&lt; &quot; Punkte erreicht.&quot; &lt;&lt; endl;
else									//Wert wurde nicht in der map gefunden
	cout &lt;&lt; &quot;Spieler &quot; &lt;&lt; player &lt;&lt; &quot; ist nicht im Highscore vertreten.&quot; &lt;&lt; endl;

//oder:
map&lt;string, int&gt;::iterator it;						//Falls du die Namen aus der Datei lesen willst/musst

cout &lt;&lt; &quot;Spieler &quot; &lt;&lt; it-&gt;first &lt;&lt; &quot; hat einen Highscore von &quot; &lt;&lt; it-&gt;second &lt;&lt; &quot; Punkten erreicht.&quot; &lt;&lt; endl;
</code></pre>
<p>Was passiert, wenn ein neuer Highscore erreicht wurde? Wir können ja davon ausgehen, dass es absteigend sortiert wurde, d.h:</p>
<pre><code>int newhighscore = x	//neuer Highscore?
string GetPlayerName(); //gibt den Spielername zurück.

for(map&lt;string, int&gt;::iterator it = name_score.begin(); it != name.score.end(); ++it)
{
	if(newhighscore &gt; it-&gt;second)
	{
		name_score.insert(it, pair&lt;string,int&gt;(GetPlayerName(), x));			//wir fügen an der Stelle it (SpielerName,Highscore) ein, da die Bedingung newhighscore &gt; (irgendein) Highscore erfüllt wurde.
		break;										//aus dem for-Loop springen, da die Bedingung nur einmal erfüllt sein muss
	}

}

name_score.erease(name_score.end());								//Es muss nun aber das letzte Element gelöscht werden, da sonst ja ein Element zu viel im Highscore wäre
</code></pre>
<p>Nun muss das ganze nur noch in die Datei, nachdem das Spiel beendet wurde:</p>
<pre><code>vector&lt;string&gt; lines;

for(map&lt;string, int&gt;::iterator it = name_score.begin(); it != name.score.end(); ++it)
{
	string t = it-&gt;first + &quot;:&quot; + string(it-&gt;second);
	lines.push_back(t);
}

/* und das muss dann einfach zeilenweise in die Datei. Dafür würde ich einfach die alte Datei überschreiben.*/

ofstream of(&quot;scores.txt&quot;);

if(of.fail())
{
	/* Fehlerbehandlung */
}
else
{
	for(vector&lt;string&gt;::iterator it = lines.begin(); it != lines.end(); ++it)
	{
		of &lt;&lt; it* &lt;&lt; endl;
	}
}

of.close();
</code></pre>
<p>Da werden auf jedne Fall ein paar Fehler drin sein, mein Ziel ist es, dass du vielleicht eine Idee aufschnappen kannst, die dir beim Umsetzen hilft - das kurz zu tippen war auf jeden Fall spannender als mich aufs Arbeiten zu konzentrieren (deswegen ist das Ganze auch ungetestet!)</p>
<p>Viele Grüße <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/2328067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328067</guid><dc:creator><![CDATA[zuiop]]></dc:creator><pubDate>Sun, 02 Jun 2013 16:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 16:39:35 GMT]]></title><description><![CDATA[<p>Natürlich muss es so sein:</p>
<pre><code>int newhighscore = x    //neuer Highscore?
string GetPlayerName(); //gibt den Spielername zurück.

for(map&lt;string, int&gt;::iterator it = name_score.begin(); it != name.score.end(); ++it)
{
    if(newhighscore &gt; it-&gt;second)
    {
        name_score.insert(it, pair&lt;string,int&gt;(GetPlayerName(), x));            //wir fügen an der Stelle it (SpielerName,Highscore) ein, da die Bedingung newhighscore &gt; (irgendein) Highscore erfüllt wurde.
name_score.erease(name_score.end());                                //Es muss nun aber das letzte Element gelöscht werden, da sonst ja ein Element zu viel im Highscore wäre
        break;                                      //aus dem for-Loop springen, da die Bedingung nur einmal erfüllt sein muss
    }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2328068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328068</guid><dc:creator><![CDATA[zuiop]]></dc:creator><pubDate>Sun, 02 Jun 2013 16:39:35 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 16:42:39 GMT]]></title><description><![CDATA[<pre><code>while(!in.eof())
</code></pre>
<p>Ist meistens - wenn nicht sogar immer - falsch. eof sollte man erst abfragen, nachdem man versucht hat etwas zu lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328069</guid><dc:creator><![CDATA[in.eof]]></dc:creator><pubDate>Sun, 02 Jun 2013 16:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 16:56:29 GMT]]></title><description><![CDATA[<p>in.eof schrieb:</p>
<blockquote>
<pre><code>while(!in.eof())
</code></pre>
<p>Ist meistens - wenn nicht sogar immer - falsch. eof sollte man erst abfragen, nachdem man versucht hat etwas zu lesen.</p>
</blockquote>
<p>:p (Bitte nicht nachahmen)</p>
<pre><code>int main()
{
	string test = &quot;1 2 3 4 5 6 7 8 9&quot;;
	istringstream file( test );

	while( !file.eof() )
	{
		int i;
		file &gt;&gt; i;
		cout &lt;&lt; i &lt;&lt; ' ';
	}
}
</code></pre>
<p>Aber ja, du hast Recht. <code>eof</code> ist nicht dazu da, um zu pürfen, ob die vorangegangene Leseoperation erfolgreich war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328072</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 02 Jun 2013 16:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 17:04:59 GMT]]></title><description><![CDATA[<p>in.eof schrieb:</p>
<blockquote>
<p>Ist meistens - wenn nicht sogar immer - falsch. eof sollte man erst abfragen, nachdem man versucht hat etwas zu lesen.</p>
</blockquote>
<p>Daher ist die idiomatische Verwendung der C++-IOStreams auch so konzipiert, dass der Konvertierungsoperator <code>!fail()</code> zurückgibt und nicht <code>good()</code> . Erst wenn dann das EOF-Flag <code>true</code> wird, wird das <code>fail</code> -Flag gesetzt und die Abbruchbedingung wird wahr.</p>
<p>Dazu prüft <code>eof()</code> nur auf das Ende, aber nicht auf Fehler im Stream. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<pre><code>#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;sstream&gt;

int main()
{
    std::istringstream stream(&quot;abcdef&quot;);

    int a;
    stream &gt;&gt; a;

    std::cout &lt;&lt; std::boolalpha &lt;&lt; stream.eof();
}
</code></pre>
<p>Edit: out war schneller. Bastard. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2328073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328073</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 02 Jun 2013 17:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 17:19:54 GMT]]></title><description><![CDATA[<p>Um das richtig zu stellen - der Schlüssel dazu ist <code>std::sentry</code> .<br />
Der Konstruktor von <code>std::sentry</code> macht folgendes:</p>
<p>[istream::sentry]/2 schrieb:</p>
<blockquote>
<p>If is.good() is false, calls is.setstate(failbit).</p>
</blockquote>
<p>Falls also schon vor der Stream-Operation das EOF-Flag gesetzt war, wird <code>failbit</code> gesetzt. Das wäre Variante 1.<br />
Variante 2 wäre:</p>
<p>[istream::sentry]/2 schrieb:</p>
<blockquote>
<p>If <code>is.rdbuf()-&gt;sbumpc()</code> or <code>is.rdbuf()-&gt;sgetc()</code> returns <code>traits::eof()</code> , the function calls <code>setstate(failbit | eofbit)</code> [...]</p>
</blockquote>
<p>Falls also bei der Leseoperation keine weiteren Zeichen verfügbar sind, wird auch das <code>failbit</code> gesetzt, und die Abbruchbedingung wird wahr.</p>
<p>Also prüft man in Wirklichkeit natürlich auch auf EOF, wenn man den Konvertierungsoperator von <code>std::ios</code> zum Prüfen nutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328076</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 02 Jun 2013 17:19:54 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 18:36:59 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>dass der Konvertierungsoperator <code>!fail()</code> zurückgibt und nicht <code>good()</code> . Erst wenn dann das EOF-Flag <code>true</code> wird, wird das <code>fail</code> -Flag gesetzt und die Abbruchbedingung wird wahr.</p>
</blockquote>
<p>Das stimmt so aber auch nicht. Wenn das <code>eofbit</code> gesetzt ist, muss das <code>failbit</code> nicht zwangsläufig auch gesetzt sein. Die sind schon unabhängig von einander.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328115</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 02 Jun 2013 18:36:59 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 18:38:47 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>dass der Konvertierungsoperator <code>!fail()</code> zurückgibt und nicht <code>good()</code> . Erst wenn dann das EOF-Flag <code>true</code> wird, wird das <code>fail</code> -Flag gesetzt und die Abbruchbedingung wird wahr.</p>
</blockquote>
<p>Das stimmt so aber auch nicht. Wenn das <code>eofbit</code> gesetzt ist, muss das <code>failbit</code> nicht zwangsläufig auch gesetzt sein. Die sind schon unabhängig von einander.</p>
</blockquote>
<p>Das <em>meinte</em> ich ja auch gar nicht. Ich meinte, wenn schon vor einer Extraktion o.ä. das eofbit gesetzt ist, wird auch das failbit gesetzt. Natürlich sind die Unabhängig, das hab ich doch durch mein Beispiel gezeigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328116</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 02 Jun 2013 18:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Sun, 02 Jun 2013 18:42:21 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>out schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>dass der Konvertierungsoperator <code>!fail()</code> zurückgibt und nicht <code>good()</code> . Erst wenn dann das EOF-Flag <code>true</code> wird, wird das <code>fail</code> -Flag gesetzt und die Abbruchbedingung wird wahr.</p>
</blockquote>
<p>Das stimmt so aber auch nicht. Wenn das <code>eofbit</code> gesetzt ist, muss das <code>failbit</code> nicht zwangsläufig auch gesetzt sein. Die sind schon unabhängig von einander.</p>
</blockquote>
<p>Das <em>meinte</em> ich ja auch gar nicht. Ich meinte, wenn schon vor einer Extraktion o.ä. das eofbit gesetzt ist, wird auch das failbit gesetzt. Natürlich sind die Unabhängig, das hab ich doch durch mein Beispiel gezeigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>:p Und jetzt noch die Preisfrage: In welcher Situation werden immer beide gesetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2328117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328117</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sun, 02 Jun 2013 18:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to Highscore speichern on Tue, 04 Jun 2013 16:57:44 GMT]]></title><description><![CDATA[<p>Vielen Dank <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/2328606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2328606</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Tue, 04 Jun 2013 16:57:44 GMT</pubDate></item></channel></rss>