<?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[Datei öffnen mit einer Funktion]]></title><description><![CDATA[<p>Kann man eine Datei mittels einer Funktion öffnen, also z.B.:<br />
[cpp]<br />
ifstream DateiÖffnen()<br />
{<br />
ifstream filestream(&quot;Datei.txt&quot;,ios::in)<br />
return filestream;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301988/datei-öffnen-mit-einer-funktion</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 15:23:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301988.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Apr 2012 21:38:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Sun, 08 Apr 2012 21:38:50 GMT]]></title><description><![CDATA[<p>Kann man eine Datei mittels einer Funktion öffnen, also z.B.:<br />
[cpp]<br />
ifstream DateiÖffnen()<br />
{<br />
ifstream filestream(&quot;Datei.txt&quot;,ios::in)<br />
return filestream;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200049</guid><dc:creator><![CDATA[Rabbit2012]]></dc:creator><pubDate>Sun, 08 Apr 2012 21:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Sun, 08 Apr 2012 21:55:07 GMT]]></title><description><![CDATA[<p>Probiers aus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200052</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 08 Apr 2012 21:55:07 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Sun, 08 Apr 2012 22:38:34 GMT]]></title><description><![CDATA[<p>Jain. Du wirst feststellen, dass du das Streamobjekt nicht kopieren kannst. Du kannst es jedoch natuerlich als Referenzparameter an die Funktion geben und dort oeffnen. Fragt sich nur: Wozu? Normalerweise oeffnet man Dateistreams direkt bei ihrer Erstellung im Konstruktor (sonst wurden sie zu frueh erstellt) und sie schliessen sich automatisch, wenn sie zerstoert werden (sonst leben sie zu lange).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200057</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 08 Apr 2012 22:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Sun, 08 Apr 2012 22:53:41 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Jain. Du wirst feststellen, dass du das Streamobjekt nicht kopieren kannst. Du kannst es jedoch natuerlich als Referenzparameter an die Funktion geben und dort oeffnen. Fragt sich nur: Wozu? Normalerweise oeffnet man Dateistreams direkt bei ihrer Erstellung im Konstruktor (sonst wurden sie zu frueh erstellt) und sie schliessen sich automatisch, wenn sie zerstoert werden (sonst leben sie zu lange).</p>
</blockquote>
<p>Ich habe innerhalb einer switch/case-Anweisung das Abspeichern einer Datei<br />
erledigt.</p>
<p>Als ich den nächsten case anlegen wollte, bekam ich die Fehlermeldung:</p>
<pre><code class="language-cpp">crosses initialization of 'std::ofstream filestream'|
</code></pre>
<p>Wie ich nachgelesen habe, funktionieren bestimmte Stream-Manipulationen innerhalb einer switch/case Anweisung nicht.<br />
Da die Streams aber erst in der switch/case Anweisung benötigt werden,<br />
müssen halt Funktionen die Aufgabe übernehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200060</guid><dc:creator><![CDATA[Rabbit2012]]></dc:creator><pubDate>Sun, 08 Apr 2012 22:53:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Sun, 08 Apr 2012 23:30:40 GMT]]></title><description><![CDATA[<p>Rabbit2012 schrieb:</p>
<blockquote>
<p>Wie ich nachgelesen habe, funktionieren bestimmte Stream-Manipulationen innerhalb einer switch/case Anweisung nicht.</p>
</blockquote>
<p>Ich behaupt jetzt einfach mal, dass es Quatsch ist. Hab sowas noch nie gehört und kanns mir auch nicht vorstellen. Deinen Compilerfehler behebst du, indem du einen Scope anlegst, also deinen Code in { } einschließt.<br />
Spricht natürlich auch nichts dagegen, deinen ganzen Code in Funktionen auszulagern, allzuviel würd ich innerhalb eines case Statements nicht machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200069</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 08 Apr 2012 23:30:40 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Mon, 09 Apr 2012 05:01:46 GMT]]></title><description><![CDATA[<p>Kannst du den Fehler in wenigen (~30) Zeilen kompletten Quelltext zusammenfassen?</p>
<p>Dann zeig den Quelltext mit Codetags. Codetags siehe unter den Smilies, der erste Button.</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200073</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Mon, 09 Apr 2012 05:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Mon, 09 Apr 2012 09:20:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Spieler
{
  void VektorInDateiSpeichern(ostream &amp;stream,vector&lt;Spieler&gt;&amp;Datensatz);
};
</code></pre>
<pre><code class="language-cpp">//Speichert die Teilnehmerliste in eine Datei ab.
void Spieler::VektorInDateiSpeichern(ostream &amp;stream,vector&lt;Spieler&gt;&amp;Datensatz)
{
   copy(Datensatz.begin(),Datensatz.end(),ostream_iterator&lt;Spieler&gt;(stream,&quot; &quot;));
}
</code></pre>
<pre><code class="language-cpp">switch(x)
          {   
            case '7':
            ofstream filestream(&quot;Teilnehmerliste.txt&quot;,ios::out|ios::app);
            this-&gt;VektorInDateiSpeichern(filestream,Datensatz);
            filestream.close();
            MenueAufrufen();        //ruft das Auswahlmenü auf.
            break;

            case '8':
            cout&lt;&lt;Sie haben 8 eingegeben.&quot;;
            break;
          }
</code></pre>
<p>Wenn ich case '8' weglasse, kompiliert der Code ohne Fehler. Den Tip von Mechanics hab ich auch mal ausprobiert, also<br />
den Anweisungsblock nach case 7 in geschweifte Klammern gesetzt, auch dann kompiliert der Code einwandfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200093</guid><dc:creator><![CDATA[Rabbit2012]]></dc:creator><pubDate>Mon, 09 Apr 2012 09:20:36 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Mon, 09 Apr 2012 09:47:59 GMT]]></title><description><![CDATA[<p>Und deine Frage dazu ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200096</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 Apr 2012 09:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Mon, 09 Apr 2012 10:02:26 GMT]]></title><description><![CDATA[<p>Das Programm kompiliert nicht, Fehlermeldungen sind:</p>
<pre><code class="language-cpp">In member function 'void Spieler::MenueAufrufen()
jump to case label|
crosses initialization of 'std::ofstream filestream
</code></pre>
<p>Deswegen möchte ich das Anlegen des Streams in eine Funktion auslagern,<br />
weil ich annehme, daß der Fehler dann nicht mehr besteht.<br />
Ich hatte im I-net gelesen, daß auch bei anderen dieser Fehler auftaucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200101</guid><dc:creator><![CDATA[Rabbit2012]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to Datei öffnen mit einer Funktion on Mon, 09 Apr 2012 10:15:03 GMT]]></title><description><![CDATA[<p>Die Loesung hat dir doch schon Mechanics gesagt und die Erklaerung, warum das so wie du das moechtest nicht geht, sagt die Fehlermeldung doch selber schon aus. Die Annahme, dass bestimmte Streammanipulationen innerhalb von witch-case nicht funktionieren ist kompletter Bloedsinn, ausser du meinst mit Aktion das Erstellen des Streams mit der Moeglichkeit, dass an der Erstellung vorbeigesprungen wird. Das gilt aber fuer <strong>alle</strong> Datentypen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200106</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:15:03 GMT</pubDate></item></channel></rss>