<?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[Problem mit fstream]]></title><description><![CDATA[<p>Hallo, ich versuche grade ein kleines Spiel zu programmieren das auch eine Speicherfunktion haben soll. Ich schreibe zum Speichern die wichtigen Daten in eine Datei. Am Beginn des Spiels wird abgefragt, ob man ein neues Spiel anfangen oder einen Speicherstand laden will. Wenn man jetzt aber &quot;Spiel laden&quot; auswählt ohne dass ein Speicherstand vorhanden ist, sollte das Spiel mit Fehlermeldung abbrechen. Aber wie kann ich abfragen, ob eine Datei existiert? Etwa so?</p>
<pre><code class="language-cpp">ifstream auslesen;
auslesen.open(&quot;speicher.txt&quot;);
if( !auslesen ) 
{
   cerr &lt;&lt; &quot;Speicherstand existiert nicht!&quot; &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/157547/problem-mit-fstream</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 10:16:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157547.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Aug 2006 12:10:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 12:10:13 GMT]]></title><description><![CDATA[<p>Hallo, ich versuche grade ein kleines Spiel zu programmieren das auch eine Speicherfunktion haben soll. Ich schreibe zum Speichern die wichtigen Daten in eine Datei. Am Beginn des Spiels wird abgefragt, ob man ein neues Spiel anfangen oder einen Speicherstand laden will. Wenn man jetzt aber &quot;Spiel laden&quot; auswählt ohne dass ein Speicherstand vorhanden ist, sollte das Spiel mit Fehlermeldung abbrechen. Aber wie kann ich abfragen, ob eine Datei existiert? Etwa so?</p>
<pre><code class="language-cpp">ifstream auslesen;
auslesen.open(&quot;speicher.txt&quot;);
if( !auslesen ) 
{
   cerr &lt;&lt; &quot;Speicherstand existiert nicht!&quot; &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1125310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125310</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Sun, 27 Aug 2006 12:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 12:27:41 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>würde es über try and catch machen:</p>
<pre><code>try
	{
		auslesen.open(&quot;speicher.txt&quot;);
	}
	catch (...)
	{
		cout &lt;&lt; &quot;Deine Fehlermeldung&quot; &lt;&lt; endl;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1125324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125324</guid><dc:creator><![CDATA[Avalon]]></dc:creator><pubDate>Sun, 27 Aug 2006 12:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:23:01 GMT]]></title><description><![CDATA[<p>Mit Boost oder API aus deinem OS:<br />
<a href="http://www.boost.org/libs/filesystem/doc/index.htm" rel="nofollow">http://www.boost.org/libs/filesystem/doc/index.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125364</guid><dc:creator><![CDATA[xGhost]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:29:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if ((file_ = ::CreateFileW (file.c_str (), GENERIC_ALL, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE)
</code></pre>
<p>Source: <a href="http://spieleprogrammierer.de/phpBB2/viewtopic.php?t=6188" rel="nofollow">http://spieleprogrammierer.de/phpBB2/viewtopic.php?t=6188</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125368</guid><dc:creator><![CDATA[Riddick_]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:29:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:34:07 GMT]]></title><description><![CDATA[<p>Avalon schrieb:</p>
<blockquote>
<p>hi,</p>
<p>würde es über try and catch machen:</p>
<pre><code>try
	{
		auslesen.open(&quot;speicher.txt&quot;);
	}
	catch (...)
	{
		cout &lt;&lt; &quot;Deine Fehlermeldung&quot; &lt;&lt; endl;
	}
</code></pre>
</blockquote>
<p>ne, das geht so nicht.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125377</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:34:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:40:20 GMT]]></title><description><![CDATA[<p>Also die API zu benutzen geht mir für mein kleines Textspielchen jetzt eindeutig zu weit. Von dem Link hab ich erhlich gesagt auch nicht viel verstanden. Ich wollte eigentlich nur wissen ob beim Code</p>
<pre><code class="language-cpp">ifstream auslesen;
auslesen.open(&quot;speicher.txt&quot;);
if( !auslesen )
{
   cerr &lt;&lt; &quot;Speicherstand existiert nicht!&quot; &lt;&lt; endl;
}
</code></pre>
<p>der Ausdruck &quot;!auslesen&quot; false zurückliefert wenn die Datei nicht existiert oder nicht. Oder wird die Datei dann von Programm erzeugt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125384</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:40:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:44:36 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12880">@Avalon</a>: Per Default werfen die streams keine Exceptions. D.h., wenn man etwas derartiges machen möchte, muss man vorher (mindestens) ein</p>
<pre><code class="language-cpp">mystream.exceptions(ios::failbit)
</code></pre>
<p>reinhauen, damit eine Exception geworfen wird, sofern irgendwann (u.a. auch bei einem Versuch eine nicht existierende Datei zu öffen) das failbit gesetzt wird.</p>
<p>edit: Siehe auch joomoo.</p>
<p>@Tetrapak: Deine Intuition ist genau richtig. Hast du es denn nicht bereits ausprobiert? Wenn auf eine Datei mit Hilfe eines std::streams in einem Modus zugegriffen werden soll, der diese bei Nichtexistenz nicht erzeugt, wird intern per Default das failbit gesetzt. Dieses kannst du nun entweder über den überladenen op! (Dieser liefert true, wenn entweder das failbit *oder* das badbit gesetzt ist) oder mit der Methode fail abfragen.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main()
{
    ifstream in(&quot;non_existent_file&quot;);
    if(in.fail()) // oder in(!if)
        // failbit ist gesetzt =&gt; Fehler beim öffnen.
    ...
}
</code></pre>
<p>xGhost: Bei den von dem OP gestellten Anforderungen reicht die Standardlib doch aus...</p>
<p>Gruß, Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125385</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:44:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:49:34 GMT]]></title><description><![CDATA[<blockquote>
<p>Wenn auf eine Datei mit Hilfe eines std::streams in einem Modus zugegriffen werden soll, der diese bei Nichtexistenz nicht erzeugt, wird intern per Default das failbit gesetzt.</p>
</blockquote>
<p>Ich nehme an, dass alle Schreiben-Modi in dem Fall die Datei erzeugen würden oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125396</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Sun, 27 Aug 2006 13:50:01 GMT]]></title><description><![CDATA[<p>Tetrapak schrieb:</p>
<blockquote>
<blockquote>
<p>Wenn auf eine Datei mit Hilfe eines std::streams in einem Modus zugegriffen werden soll, der diese bei Nichtexistenz nicht erzeugt, wird intern per Default das failbit gesetzt.</p>
</blockquote>
<p>Ich nehme an, dass alle Schreiben-Modi in dem Fall die Datei erzeugen würden oder?</p>
</blockquote>
<p>Warum probierst du es nicht einfach mal aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1125398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125398</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sun, 27 Aug 2006 13:50:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit fstream on Mon, 28 Aug 2006 09:51:06 GMT]]></title><description><![CDATA[<p>Caipi schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12880">@Avalon</a>: Per Default werfen die streams keine Exceptions. D.h., wenn man etwas derartiges machen möchte, muss man vorher (mindestens) ein</p>
<pre><code class="language-cpp">mystream.exceptions(ios::failbit)
</code></pre>
<p>reinhauen, damit eine Exception geworfen wird, sofern irgendwann (u.a. auch bei einem Versuch eine nicht existierende Datei zu öffen) das failbit gesetzt wird.</p>
<p>edit: Siehe auch joomoo.</p>
<p>Gruß, Caipi</p>
</blockquote>
<p>jo stimmt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> war wohl ein wenig zu viel vcl in letzter zeit <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/1125970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1125970</guid><dc:creator><![CDATA[Avalon]]></dc:creator><pubDate>Mon, 28 Aug 2006 09:51:06 GMT</pubDate></item></channel></rss>