<?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[ofstream: Datei nicht erzeugt, aber .good()=true]]></title><description><![CDATA[<p>Ich versuche eine Datei zu erzeugen und Daten in diese Datei zu kopieren. Die Datei wird nicht erzeugt (Windows 7, keine Rechte für den Benutzer im Verzeichnis C:\). Das ist soweit klar und ok. Aber warum sagt das ofstream Objekt &quot;alles ok&quot;?</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
    ifstream ifile(&quot;lesbar.txt&quot;,ios::binary); // ok, öffnen klappt und Daten werden gelesen
    if(!ifile)
    {
        cerr &lt;&lt; &quot;ifstream open failed&quot; &lt;&lt; endl;
        return 1;
    }

    ofstream ofile(&quot;c:\\test.txt&quot;,ios::binary|ios::trunc); // Datei wird nicht erzeugt; keine Rechte für den Benutzer
    if(!ofile)
    {
        cerr &lt;&lt; &quot;ofstream open failed&quot; &lt;&lt; endl;
        return 1;
    }

    char c;
    while(ifile.get(c)&amp;&amp;ofile.good())
    ofile.put(c);

// ofile.flush(); // dachte evtl. schreibt er erst jetzt und stellt fest, dass schreiben nicht möglich; ohne Effekt

    if(!ifile.eof())
    {
        cerr &lt;&lt; &quot;ifile.eof()&quot; &lt;&lt; endl;
        return 1;
    }
    if(!ofile.good())
    {
        cerr &lt;&lt; &quot;!ofile.good()&quot; &lt;&lt; endl;
        return 1;
    }

    return 0;
}
</code></pre>
<p>Edit: &quot;c:\&quot; -&gt; &quot;c:\&quot; - hat aber nichts mit dem Problem zu tun (Dateinamen kommen über Kommandozeile)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265819/ofstream-datei-nicht-erzeugt-aber-good-true</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 19:27:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265819.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Apr 2010 11:16:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 17:48:20 GMT]]></title><description><![CDATA[<p>Ich versuche eine Datei zu erzeugen und Daten in diese Datei zu kopieren. Die Datei wird nicht erzeugt (Windows 7, keine Rechte für den Benutzer im Verzeichnis C:\). Das ist soweit klar und ok. Aber warum sagt das ofstream Objekt &quot;alles ok&quot;?</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
    ifstream ifile(&quot;lesbar.txt&quot;,ios::binary); // ok, öffnen klappt und Daten werden gelesen
    if(!ifile)
    {
        cerr &lt;&lt; &quot;ifstream open failed&quot; &lt;&lt; endl;
        return 1;
    }

    ofstream ofile(&quot;c:\\test.txt&quot;,ios::binary|ios::trunc); // Datei wird nicht erzeugt; keine Rechte für den Benutzer
    if(!ofile)
    {
        cerr &lt;&lt; &quot;ofstream open failed&quot; &lt;&lt; endl;
        return 1;
    }

    char c;
    while(ifile.get(c)&amp;&amp;ofile.good())
    ofile.put(c);

// ofile.flush(); // dachte evtl. schreibt er erst jetzt und stellt fest, dass schreiben nicht möglich; ohne Effekt

    if(!ifile.eof())
    {
        cerr &lt;&lt; &quot;ifile.eof()&quot; &lt;&lt; endl;
        return 1;
    }
    if(!ofile.good())
    {
        cerr &lt;&lt; &quot;!ofile.good()&quot; &lt;&lt; endl;
        return 1;
    }

    return 0;
}
</code></pre>
<p>Edit: &quot;c:\&quot; -&gt; &quot;c:\&quot; - hat aber nichts mit dem Problem zu tun (Dateinamen kommen über Kommandozeile)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889885</guid><dc:creator><![CDATA[ihoernchen]]></dc:creator><pubDate>Thu, 29 Apr 2010 17:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 11:24:29 GMT]]></title><description><![CDATA[<p>Wie stellst du denn fest, dass alles gut ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889891</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 29 Apr 2010 11:24:29 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 11:29:49 GMT]]></title><description><![CDATA[<p>statt &quot;c:\autoexec.bat&quot; solltest du &quot;c:\\autoexec.bat&quot; oder &quot;c:/autoexec.bat&quot; verwenden da das Zeichen '\' für escape sequenzen verwendet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889893</guid><dc:creator><![CDATA[megaweber]]></dc:creator><pubDate>Thu, 29 Apr 2010 11:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 11:33:23 GMT]]></title><description><![CDATA[<p>megaweber schrieb:</p>
<blockquote>
<p>statt &quot;c:\autoexec.bat&quot; solltest du &quot;c:\\autoexec.bat&quot; oder &quot;c:/autoexec.bat&quot; verwenden da das Zeichen '\' für escape sequenzen verwendet wird.</p>
</blockquote>
<p>Ja die \ hatte ich reineditiert. Die Namen kommen von der Kommandozeile.</p>
<p>knivil  schrieb:</p>
<blockquote>
<p>Wie stellst du denn fest, dass alles gut ist?</p>
</blockquote>
<p>Denke !ofile (Zeile 6), dass ofile.good() (Zeile 10) oder spätestens das !ofile.good() (Zeile 17) sollte doch einen Fehler bringen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889895</guid><dc:creator><![CDATA[ihoernchen]]></dc:creator><pubDate>Thu, 29 Apr 2010 11:33:23 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 12:07:39 GMT]]></title><description><![CDATA[<p>ihoernchen schrieb:</p>
<blockquote>
<p>Denke !ofile (Zeile 6), dass ofile.good() (Zeile 10) oder spätestens das !ofile.good() (Zeile 17) sollte doch einen Fehler bringen?</p>
</blockquote>
<p>Was meinst du mit Fehler? Wenn in Zeile 6+7 das <code>return 1</code> ausgewertet wird, dann kommt er gar nicht mehr zu dem nachfolgenden Code. Auch weisst du nicht, welches der vielen if's fuer das <code>retun 1</code> verantwortlich ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889915</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 29 Apr 2010 12:07:39 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 12:37:54 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>ihoernchen schrieb:</p>
<blockquote>
<p>Denke !ofile (Zeile 6), dass ofile.good() (Zeile 10) oder spätestens das !ofile.good() (Zeile 17) sollte doch einen Fehler bringen?</p>
</blockquote>
<p>Was meinst du mit Fehler? Wenn in Zeile 6+7 das <code>return 1</code> ausgewertet wird, dann kommt er gar nicht mehr zu dem nachfolgenden Code. Auch weisst du nicht, welches der vielen if's fuer das <code>retun 1</code> verantwortlich ist.</p>
</blockquote>
<p>Das Problem ist doch, es kommt nie zu einem return 1.<br />
Das ist ein vereinfachtes Beispiel, welches ich im Debugger steppe.</p>
<p>Mich wundert doch, dass ofile.good() immer true ist.<br />
Ich gehe davon aus, kann er ofile nicht erzeugen oder nicht schreiben, ist ofile.good()==false. Nur das tritt nicht ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889940</guid><dc:creator><![CDATA[ihoernchen]]></dc:creator><pubDate>Thu, 29 Apr 2010 12:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 17:34:42 GMT]]></title><description><![CDATA[<p>Gerade auf dem Mac probiert, bei Zeile 6 gibt !ofile false zurück (wie es eigentlich zu erwarten ist). Nur unter Windows 7 nicht. hmm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890067</guid><dc:creator><![CDATA[ihoernchen]]></dc:creator><pubDate>Thu, 29 Apr 2010 17:34:42 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 17:35:49 GMT]]></title><description><![CDATA[<p>ihoernchen schrieb:</p>
<blockquote>
<p>Gerade auf dem Mac probiert, bei Zeile 6 gibt !ofile false zurück (wie es eigentlich zu erwarten ist). Nur unter Windows 7 nicht. hmm</p>
</blockquote>
<p>wenn du mir was compilerbares lieferst, probier ichs hier auch aus - aber so hab ich gerade keine lust : P</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890069</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 29 Apr 2010 17:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 17:48:50 GMT]]></title><description><![CDATA[<p>- bei ifile eine Datei zum Lesen eintragen.<br />
- bei ofile ein für den Benutzer nicht beschreibbares Verzeichnis bzw Datei z.B. c:\test.txt angeben (Windows 7).</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
	ifstream ifile(&quot;lesbar.txt&quot;,ios::binary); // ok, öffnen klappt und Daten werden gelesen
	if(!ifile)
	{
		cerr &lt;&lt; &quot;ifstream open failed&quot; &lt;&lt; endl;
		return 1;
	}

	ofstream ofile(&quot;c:\\test.txt&quot;,ios::binary|ios::trunc); // Datei wird nicht erzeugt; keine Rechte für den Benutzer
	if(!ofile)
	{
		cerr &lt;&lt; &quot;ofstream open failed&quot; &lt;&lt; endl;
		return 1;
	}

	char c;
	while(ifile.get(c)&amp;&amp;ofile.good())
	ofile.put(c);

// ofile.flush(); // dachte evtl. schreibt er erst jetzt und stellt fest, dass schreiben nicht möglich; ohne Effekt

	if(!ifile.eof())
	{
		cerr &lt;&lt; &quot;ifile.eof()&quot; &lt;&lt; endl;
		return 1;
	}
	if(!ofile.good())
	{
		cerr &lt;&lt; &quot;!ofile.good()&quot; &lt;&lt; endl;
		return 1;
	}

	return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1890079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890079</guid><dc:creator><![CDATA[ihoernchen]]></dc:creator><pubDate>Thu, 29 Apr 2010 17:48:50 GMT</pubDate></item><item><title><![CDATA[Reply to ofstream: Datei nicht erzeugt, aber .good()=true on Thu, 29 Apr 2010 18:07:15 GMT]]></title><description><![CDATA[<p>Also bei mir ist die Ausgabe (durch die eingeschränkten benutzerrechte wie erwartet) &quot;ofstream open failed&quot;.<br />
(hab auch win7 und bin gerad mit nem account ohne adminrechte unterwegs.)</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890085</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 29 Apr 2010 18:07:15 GMT</pubDate></item></channel></rss>