<?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[fstream closes() automatisch am ende der scope?]]></title><description><![CDATA[<p>hallo!</p>
<p>kann es sein, dass ein fstream der über open() geöffnet wurde sich automatisch wieder closed wenn die funktion / scope fertig ist?<br />
zumindestens hatte ich das problem als ich eine LOGFILE-Klasse gekapselt habe in der im Konstruktor das fstream-objekt geopened wurde. aber wenn ich danach irgendeine member-routine aufgerufen habe, die was in den stream schreiben sollte e.g. dann war er wieder zu <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>
<p>muss ich für sowas etwa n externen thread machen nur damit fstream geöffnet bleibt? ich hab in der msn nichts darüber gefunden...</p>
<p>danke<br />
chris90</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143781/fstream-closes-automatisch-am-ende-der-scope</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 12:23:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143781.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Apr 2006 17:05:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:05:56 GMT]]></title><description><![CDATA[<p>hallo!</p>
<p>kann es sein, dass ein fstream der über open() geöffnet wurde sich automatisch wieder closed wenn die funktion / scope fertig ist?<br />
zumindestens hatte ich das problem als ich eine LOGFILE-Klasse gekapselt habe in der im Konstruktor das fstream-objekt geopened wurde. aber wenn ich danach irgendeine member-routine aufgerufen habe, die was in den stream schreiben sollte e.g. dann war er wieder zu <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>
<p>muss ich für sowas etwa n externen thread machen nur damit fstream geöffnet bleibt? ich hab in der msn nichts darüber gefunden...</p>
<p>danke<br />
chris90</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035420</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:33:26 GMT]]></title><description><![CDATA[<p>Ja, der Destruktor erledigt das.</p>
<p>EDIT</p>
<blockquote>
<p>muss ich für sowas etwa n externen thread machen nur damit fstream geöffnet bleibt? ich hab in der msn nichts darüber gefunden...</p>
</blockquote>
<p>Öffne ihn doch einfach neu, wo ist das Problem?</p>
<p>PS: es heißt MSDN nicht MSN <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/1035427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035427</guid><dc:creator><![CDATA[michba]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:36:43 GMT]]></title><description><![CDATA[<p>moment - der detstruktor von fstream sollte doch gar nicht aufgerufen werden, da mein fstream-objekt als member in der klasse deklariert ist. d.h. im konstruktor initialisiere ich das objekt lediglich.</p>
<p>wieso sollte das objekt direkt nach der initialisierung wieder zerstört werden?</p>
<p>Beispielcode:</p>
<pre><code class="language-cpp">class A
{
     A(){
        mystream.open(&quot;hallo.txt&quot;, ios::in);
     }

      fstream mystream;

    void MemberFunc(){fstream.get(NULL);}
};
</code></pre>
<p>wenn ich jetzt erstmal ein objekt der klasse A deklariere und dann initialisiere sollte mystream ja wohl dauerhaft geöffnet sein, oder?</p>
<p>wenn ich danach aber über die MemberFunc() was rauslesen will stelle ich fest dass er wieder geschlossen ist... wieso????<br />
und wie kann ich ihn offenhalten solange ich das will?</p>
<p>chris90</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035431</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:36:43 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:38:47 GMT]]></title><description><![CDATA[<p>Wenn Du zu Anfang jedes Scope wo Du loggst einen neuen Logger auf dem Stack erstellst, klar, mit Vernichtung des Loggers ist auch der Stream weg (wo sollte er gespeichert werden?). Aber das macht man normalerweise auch nicht ;). Für so einen Logger ist z.B. ein Singleton-Ansatz ganz brauchbar...</p>
<p>EDIT:<br />
Ok der Post war vorhin noch nicht da - Problem verdeutlicht.<br />
Also meine Loggerklasse erzeugt den fstream static, initialisiert ihn bei erster Benutzung, und schließt sich nur (bzw. wird bad()) wenn ich was ungezogenes tu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035433</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:39:20 GMT]]></title><description><![CDATA[<p>siehe meinen beitrag oben ^^</p>
<p>natürlich zerstöre ich meine klasse A nicht !<br />
die ist global...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035434</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:39:45 GMT]]></title><description><![CDATA[<p>Hab doch schon geändert <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/1035435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035435</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:39:45 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:43:47 GMT]]></title><description><![CDATA[<p>sry - dein EDIT war noch nicht da <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>also ist der trick das ding static zu machen?<br />
ist es denn wirklich so, dass sich das ding bei obigem code schließt am ende des konstruktors?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035440</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 17:53:24 GMT]]></title><description><![CDATA[<p>Nein, wichtig ist halt nur dass Dein stream-Objekt lange genug lebt (das ist jetzt der Fall solange das Objekt vom Typ A existiert. Bei static wäre das die gesamte Programmlaufzeit), und das tut es ja jetzt schon.</p>
<p>Du musst allerdings schauen ob Du dem Stream irgendwas antust was nicht den Regeln entspricht. Genauso wie die C-IO-Funktionen auf Fehler laufen können und danach nicht einwandfrei sind, passiert das Streams natürlich auch. Das heisst nicht unbedingt dass er geschlossen ist, aber ein anschliessender read/write geht trotzdem schief. Würde mich bei einem get(NULL) aber nichtmal wundern (geht das durchn Compiler?)</p>
<p>Die Antwort lautet fürchte ich also: Das allein ist noch nicht falsch, Du machst irgendeinen Fehler in Code den wir nicht kennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035449</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 11 Apr 2006 17:53:24 GMT</pubDate></item><item><title><![CDATA[Reply to fstream closes() automatisch am ende der scope? on Tue, 11 Apr 2006 18:13:08 GMT]]></title><description><![CDATA[<p>ok das get(NULL) war auch nurn beispiel das ich im code natürlich nicht verwende...<br />
ich hab mir das auch schon gedacht, dass der fehler an ner anderen stell liegt, aber das problem ist eben dass ich nicht weiß was ich schon groß falsch mache...</p>
<p>naja ich werde es selbst nochmal versuchen</p>
<p>danke<br />
chris90</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035462</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Tue, 11 Apr 2006 18:13:08 GMT</pubDate></item></channel></rss>