<?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[File schließen]]></title><description><![CDATA[<p>Hey Leute ich habe gerade eine funktiin geschrieben:</p>
<pre><code>void addName(std::string name)
{
    std::ofstream file(&quot;ops.txt&quot;, std::ios::app);
    file &lt;&lt; name;
}
</code></pre>
<p>Und habe mich gefragt ob ich diese Datei schließen muss oder nicht.<br />
Könnte mir das bitte jemand erklären warum und wieso?</p>
<p>MFG Opix</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330733/file-schließen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 18:23:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330733.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Jan 2015 09:18:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to File schließen on Sat, 24 Jan 2015 09:18:30 GMT]]></title><description><![CDATA[<p>Hey Leute ich habe gerade eine funktiin geschrieben:</p>
<pre><code>void addName(std::string name)
{
    std::ofstream file(&quot;ops.txt&quot;, std::ios::app);
    file &lt;&lt; name;
}
</code></pre>
<p>Und habe mich gefragt ob ich diese Datei schließen muss oder nicht.<br />
Könnte mir das bitte jemand erklären warum und wieso?</p>
<p>MFG Opix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439322</guid><dc:creator><![CDATA[Opix]]></dc:creator><pubDate>Sat, 24 Jan 2015 09:18:30 GMT</pubDate></item><item><title><![CDATA[Reply to File schließen on Sat, 24 Jan 2015 10:06:22 GMT]]></title><description><![CDATA[<p>Die Variable file vom Typ std::ofstream ist lokal zu der Funktion addName. In dem Moment, wo addName verlassen wird, wird sie zerstört, ihr Destruktor wird aufgerufen, und der schließt das File.<br />
Du musst also nichts weiter tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439326</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 24 Jan 2015 10:06:22 GMT</pubDate></item><item><title><![CDATA[Reply to File schließen on Sat, 24 Jan 2015 10:07:27 GMT]]></title><description><![CDATA[<p>Sehr gut erklärt vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439327</guid><dc:creator><![CDATA[Opix]]></dc:creator><pubDate>Sat, 24 Jan 2015 10:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to File schließen on Sat, 24 Jan 2015 10:09:19 GMT]]></title><description><![CDATA[<p>Das Schließen von Dateien macht, dass die Datei wieder anderswo geöffnet werden kann und das eventuell noch nicht geschriebene Buffer synchronisiert werden. Dies und das Öffnen von Dateien sind beides sehr aufwändige Aktionen, man sollte eine bestimmte Datei daher möglichst nur einmal öffnen und schließen im Programmverlauf, sofern möglich.</p>
<p>Die Datei wird hier automatisch geschlossen, da ja der fstream am Ende der Funktion zerstört wird und dabei automatisch die Datei geschlossen wird (wäre schlecht wenn nicht, dann hätte man eine blockierte Datei!). Insofern kann man einerseits sagen, dass du die Datei hier nicht schließen brauchst (und auch nicht solltest), aber andererseits, dass es keine gute Idee ist, für jede einzelne Zeile die Datei erneut zu öffnen.</p>
<p>Eine bessere Idee ist, die Datei permanent offen zu halten und deiner Funktion auch eine Referenz auf den Stream zu übergeben, in den sie dann schreiben soll. Wobei sich damit wohl vermutlich sowieso der Sinn der Funktion erledigt hast, denn ob du nun</p>
<pre><code>file &lt;&lt; name;
</code></pre>
<p>oder</p>
<pre><code>addname(file, name);
</code></pre>
<p>schreibst, macht schließlich keinen großen Unterschied, letzteres ist sogar eher etwas umständlicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439330</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 24 Jan 2015 10:09:19 GMT</pubDate></item></channel></rss>