<?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 ifstream.open()]]></title><description><![CDATA[<p>Hier ein code Ausschnitt:</p>
<pre><code>if(GetOpenFileName(&amp;file))
			{
				SetWindowText(hFileText, strFile);

				ifstream ifs(&quot;file.txt&quot;);
				if(!(ifs.is_open()))
				MessageBox(hWnd,&quot;fehler bei open()&quot;, &quot;&quot;,0);
</code></pre>
<p>ifs.is_open() ist in dem Fall immer false.<br />
Nur wenn ich das ifstream ifs(&quot;file.txt&quot;); z.B. nach ganz oben verschiebe sodass es eine globale Variable ist, dann gibt is_open() true zurück.<br />
Kann das einer erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318930/problem-mit-ifstream-open</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 07:33:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318930.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Jul 2013 15:59:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 15:59:50 GMT]]></title><description><![CDATA[<p>Hier ein code Ausschnitt:</p>
<pre><code>if(GetOpenFileName(&amp;file))
			{
				SetWindowText(hFileText, strFile);

				ifstream ifs(&quot;file.txt&quot;);
				if(!(ifs.is_open()))
				MessageBox(hWnd,&quot;fehler bei open()&quot;, &quot;&quot;,0);
</code></pre>
<p>ifs.is_open() ist in dem Fall immer false.<br />
Nur wenn ich das ifstream ifs(&quot;file.txt&quot;); z.B. nach ganz oben verschiebe sodass es eine globale Variable ist, dann gibt is_open() true zurück.<br />
Kann das einer erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2342578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342578</guid><dc:creator><![CDATA[Francis123]]></dc:creator><pubDate>Wed, 31 Jul 2013 15:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 16:11:29 GMT]]></title><description><![CDATA[<blockquote>
<p>Nur wenn ich das ifstream ifs(&quot;file.txt&quot;); z.B. nach ganz oben verschiebe sodass es eine globale Variable ist, dann gibt is_open() true zurück.</p>
</blockquote>
<p>Ganz einfach: Irgendwas passiert zwischendurch, sodass die Datei nicht mehr zum Lesen geöffnet werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2342583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342583</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 31 Jul 2013 16:11:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 16:12:02 GMT]]></title><description><![CDATA[<p>Das glaub ich dir einfach mal nicht. Videobeweis <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2342584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342584</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 31 Jul 2013 16:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 16:13:21 GMT]]></title><description><![CDATA[<p>Vielleicht hast du das working directory gewechselt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2342585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342585</guid><dc:creator><![CDATA[insblaue]]></dc:creator><pubDate>Wed, 31 Jul 2013 16:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 16:26:52 GMT]]></title><description><![CDATA[<p>Hab den code jetzt so verändert dass es doch funktioniert, da waren andere Lesezugriffe aber keine auf diese Datei, egal es geht jetzt.<br />
Ich hätte das ganze einfach mit Win32 API und ReadFile gemacht, aber ich will die Datei komplett in ein vector Objekt einlesen und nicht in einen Buffer dessen Größe ich vorher selbst festlege.<br />
Ist diese Lösung in Ordnung?</p>
<pre><code>vecBuffer.clear();
							while(ifs)
								vecBuffer.push_back(ifs.get());
							vecBuffer.at(vecBuffer.size()-1)=0;
							ifs.close();
							SetWindowText(hTextBox_01,vecBuffer.data());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2342587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342587</guid><dc:creator><![CDATA[Francis123]]></dc:creator><pubDate>Wed, 31 Jul 2013 16:26:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 16:36:57 GMT]]></title><description><![CDATA[<p>Warum setzt du den letzten Wert auf 0? Was, wenn der vector 0 Elemente hat? Ich habe eher den Eindruck, du möchtest in einen std::string einlesen.</p>
<p>Dir ist schon klar, dass ifstreams sich automatisch schließen, wenn sie zerstört werden? RAII und so? Die Standardbibliothek kann das <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/2342589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342589</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 31 Jul 2013 16:36:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 16:48:10 GMT]]></title><description><![CDATA[<p>Ok hab ne Abfrage eingefügt ob der Vector 0 Elemente hat. Komischerweise ist der letzte Char der eingelesen wird immer ein nicht darstellbares Zeichen. Ich weis nicht wieso. Ich überschreib den mit 0 damit der String da beendet ist.<br />
An ein String Objekt hab ich hier gar nicht gedacht, würde wohl auch gut funtkionieren.<br />
Was meinst du mit automatisch schließen? Ich weis nicht was das bedeuten soll. Was hat das mit diesem Code zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2342591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342591</guid><dc:creator><![CDATA[Francis123]]></dc:creator><pubDate>Wed, 31 Jul 2013 16:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Wed, 31 Jul 2013 17:13:03 GMT]]></title><description><![CDATA[<p>Francis123 schrieb:</p>
<blockquote>
<p>Ok hab ne Abfrage eingefügt ob der Vector 0 Elemente hat.</p>
</blockquote>
<p>Aber willst du denn tatsächlich das letzte Element überschreiben? <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>
<blockquote>
<p>Komischerweise ist der letzte Char der eingelesen wird immer ein nicht darstellbares Zeichen. Ich weis nicht wieso.</p>
</blockquote>
<p>Ja, da habe ich einen typischen Anfängerfehler übersehen. Du prüfst, liest, verarbeitest. Wenn nun jedoch beim Lesen etwas schiefgeht (gets gibt dann eof zurück), dann verarbeitest du irgendwelchen Müll (hier also das eof-Zeichen)</p>
<blockquote>
<p>Ich überschreib den mit 0 damit der String da beendet ist.</p>
</blockquote>
<p>Bloß ist es ein vector, keine Zeichenkette im C-Stil. Nimm doch std::string für Zeichenketten. Der hat zur Not auch eine Funktion zur Umwandlung in eine Zeichenkette im C-Stil.</p>
<blockquote>
<p>Was meinst du mit automatisch schließen? Ich weis nicht was das bedeuten soll. Was hat das mit diesem Code zu tun?</p>
</blockquote>
<p>Na, das ifs.close(). Sieht man selten in C++. Eigentlich nur, wenn ifs später nochmal für eine andere Datei verwendet werden soll. Was keine gute Vorgehensweise wäre.</p>
<p>Insgesamt willst du wohl:</p>
<pre><code>ifstream ifs(&quot;file.txt&quot;);
  string dateiinhalt(istreambuf_iterator&lt;char&gt;(ifs), istreambuf_iterator&lt;char&gt;());
  SetWindowText(hTextBox_01,dateiinhalt.c_str());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2342596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2342596</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 31 Jul 2013 17:13:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Fri, 02 Aug 2013 19:41:16 GMT]]></title><description><![CDATA[<p>Wieso werden in der Textbox keine Zeilenumbrüche aus der Datei angezeigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343064</guid><dc:creator><![CDATA[Francis123]]></dc:creator><pubDate>Fri, 02 Aug 2013 19:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Fri, 02 Aug 2013 20:15:49 GMT]]></title><description><![CDATA[<p>Francis123 schrieb:</p>
<blockquote>
<p>Wieso werden in der Textbox keine Zeilenumbrüche aus der Datei angezeigt?</p>
</blockquote>
<p>Versuch mal die Datei binary zu öffnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343068</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 02 Aug 2013 20:15:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Fri, 02 Aug 2013 20:35:44 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Insgesamt willst du wohl:</p>
<pre><code>ifstream ifs(&quot;file.txt&quot;);
  string dateiinhalt(istreambuf_iterator&lt;char&gt;(ifs), istreambuf_iterator&lt;char&gt;());
</code></pre>
</blockquote>
<p>Bei mir macht da <code>most vexing parse</code> ein Strich durch die Rechnung. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343075</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 02 Aug 2013 20:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.open() on Fri, 02 Aug 2013 21:54:28 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Bei mir macht da <code>most vexing parse</code> ein Strich durch die Rechnung. :p</p>
</blockquote>
<p>Ich sollte meine Code testen. Es heißt nicht umsonst <em>most vexing</em> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> . Man denke sich noch ein paar passende Klammern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343105</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 02 Aug 2013 21:54:28 GMT</pubDate></item></channel></rss>