<?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[Fragen zum einlesen von Datein (ifstream)]]></title><description><![CDATA[<p>Ich habe eine Frage zum Einlesen von Datein.</p>
<p>In meinem ersten Buch wurde es mir so erklärt:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	ifstream dat_ein; //Stream deklarieren
	string s; // String zum Einlesen deklarieren

	dat_ein.open((&quot;Beispiel.txt&quot;), ios_base::in); // Stream öffnen, Dateinamenübergeben und Öffnungsmodus setzen.

	while(!dat_ein.eof()) // Einlesen
	{
		getline(dat_ein, s);
		cout &lt;&lt; s &lt;&lt; endl;
	}

	dat_ein.close(); 
}
</code></pre>
<p>Im Buch steht, dass .eof() einen Nullwert zurückliefert wenn das Dateiende erreicht ist, und die Schleife dann verlassen wird.</p>
<p>Nun steht in einem anderen Buch folgendes:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;fstream&gt;
using namespace std;

int main()
{
	ifstream dat_ein; //Stream deklarieren
	string s; // String zum Einlesen deklarieren

	dat_ein.open(&quot;Beispiel.txt&quot;); // Stream öffnen, Dateinamen übergeben und Öffnungsmodus setzen.

	if(dat_ein.is_open()) // Einlesen
	{
		while(getline(dat_ein,s))
		{
			cout &lt;&lt; s &lt;&lt; endl;
		}

		dat_ein.close();
	}
	else cout &lt;&lt; &quot;Unable to Open file&quot;;

}
</code></pre>
<p>Hier habe ich nun die Funktion is.open(). Was genau bringt mir die?<br />
In meinem alten Buch stand, das der Stream (dat_ein) einen Nullwert zurück gibt, wenn das Öffnen der Datei fehlgeschlagen ist. Überprüft is.open() genau das hier?</p>
<p>Desweiteren:</p>
<p>Im neuen Buch steht, das getline() selbst den Wert 0 zurürck gibt, sobald das Dateiende erreicht ist. Warum sollte man dann eof() nutzen?</p>
<p>Was ist der unterschied der beiden Methoden?</p>
<p>Und muss ich den Öffnungsmodus ios_base::in angeben? Im zweiten Beispiel wurde er nicht verwendet. Fügt der Compiler das sonst automatisch ein wenn es fehlt?</p>
<p>Wäre für eine Antwort dankbar. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337617/fragen-zum-einlesen-von-datein-ifstream</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 23:47:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337617.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Apr 2016 16:10:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fragen zum einlesen von Datein (ifstream) on Thu, 14 Apr 2016 16:10:58 GMT]]></title><description><![CDATA[<p>Ich habe eine Frage zum Einlesen von Datein.</p>
<p>In meinem ersten Buch wurde es mir so erklärt:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	ifstream dat_ein; //Stream deklarieren
	string s; // String zum Einlesen deklarieren

	dat_ein.open((&quot;Beispiel.txt&quot;), ios_base::in); // Stream öffnen, Dateinamenübergeben und Öffnungsmodus setzen.

	while(!dat_ein.eof()) // Einlesen
	{
		getline(dat_ein, s);
		cout &lt;&lt; s &lt;&lt; endl;
	}

	dat_ein.close(); 
}
</code></pre>
<p>Im Buch steht, dass .eof() einen Nullwert zurückliefert wenn das Dateiende erreicht ist, und die Schleife dann verlassen wird.</p>
<p>Nun steht in einem anderen Buch folgendes:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;fstream&gt;
using namespace std;

int main()
{
	ifstream dat_ein; //Stream deklarieren
	string s; // String zum Einlesen deklarieren

	dat_ein.open(&quot;Beispiel.txt&quot;); // Stream öffnen, Dateinamen übergeben und Öffnungsmodus setzen.

	if(dat_ein.is_open()) // Einlesen
	{
		while(getline(dat_ein,s))
		{
			cout &lt;&lt; s &lt;&lt; endl;
		}

		dat_ein.close();
	}
	else cout &lt;&lt; &quot;Unable to Open file&quot;;

}
</code></pre>
<p>Hier habe ich nun die Funktion is.open(). Was genau bringt mir die?<br />
In meinem alten Buch stand, das der Stream (dat_ein) einen Nullwert zurück gibt, wenn das Öffnen der Datei fehlgeschlagen ist. Überprüft is.open() genau das hier?</p>
<p>Desweiteren:</p>
<p>Im neuen Buch steht, das getline() selbst den Wert 0 zurürck gibt, sobald das Dateiende erreicht ist. Warum sollte man dann eof() nutzen?</p>
<p>Was ist der unterschied der beiden Methoden?</p>
<p>Und muss ich den Öffnungsmodus ios_base::in angeben? Im zweiten Beispiel wurde er nicht verwendet. Fügt der Compiler das sonst automatisch ein wenn es fehlt?</p>
<p>Wäre für eine Antwort dankbar. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493181</guid><dc:creator><![CDATA[zeroblack]]></dc:creator><pubDate>Thu, 14 Apr 2016 16:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum einlesen von Datein (ifstream) on Thu, 14 Apr 2016 16:16:22 GMT]]></title><description><![CDATA[<p>Namen des ersten Buches nennen (Jürgen Wolf?), dann dieses Buch wegwerfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493183</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Apr 2016 16:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum einlesen von Datein (ifstream) on Thu, 14 Apr 2016 16:21:39 GMT]]></title><description><![CDATA[<p>zeroblack schrieb:</p>
<blockquote>
<p>Hier habe ich nun die Funktion is.open(). Was genau bringt mir die?</p>
</blockquote>
<p>Sie prüft nach, ob die Datei offen ist, bzw. geöffnet werden konnte.</p>
<blockquote>
<p>Desweiteren:</p>
<p>Im neuen Buch steht, das getline() selbst den Wert 0 zurürck gibt, sobald das Dateiende erreicht ist. Warum sollte man dann eof() nutzen?</p>
</blockquote>
<p>In diesem Fall brauchst du eof() nicht.</p>
<blockquote>
<p>Was ist der unterschied der beiden Methoden?</p>
</blockquote>
<p>getline() gibt dir alles bis zum nächsten Zeilenumbruch zurück, das sollte klar sein. Als Rückgabewert wird der Stream selbst zurückgegeben, dieser hat nen <code>operator bool</code> implementiert, der das Gleiche tut, wie <code>istream::is_open</code> .</p>
<blockquote>
<p>Und muss ich den Öffnungsmodus ios_base::in angeben? Im zweiten Beispiel wurde er nicht verwendet. Fügt der Compiler das sonst automatisch ein wenn es fehlt?</p>
</blockquote>
<p>Nein. Der Konstruktor hat default-initialisierte Parameter. <a href="http://www.cplusplus.com/reference/fstream/ifstream/ifstream/" rel="nofollow">Siehe hier</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493184</guid><dc:creator><![CDATA[darkstream]]></dc:creator><pubDate>Thu, 14 Apr 2016 16:21:39 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum einlesen von Datein (ifstream) on Thu, 14 Apr 2016 16:36:36 GMT]]></title><description><![CDATA[<p>darkstream schrieb:</p>
<blockquote>
<blockquote>
<p>Desweiteren:</p>
<p>Im neuen Buch steht, das getline() selbst den Wert 0 zurürck gibt, sobald das Dateiende erreicht ist. Warum sollte man dann eof() nutzen?</p>
</blockquote>
<p>In diesem Fall brauchst du eof() nicht.</p>
</blockquote>
<p>Betonung: eof brauchst du so gut wie nie.</p>
<blockquote>
<blockquote>
<p>Was ist der unterschied der beiden Methoden?</p>
</blockquote>
<p>getline() gibt dir alles bis zum nächsten Zeilenumbruch zurück, das sollte klar sein. Als Rückgabewert wird der Stream selbst zurückgegeben, dieser hat nen <code>operator bool</code> implementiert, der das Gleiche tut, wie <code>istream::is_open</code> .</p>
</blockquote>
<p>Nein, es macht viel mehr. Es ist das Äquivalent von <code>!fail()</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493186</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Apr 2016 16:36:36 GMT</pubDate></item></channel></rss>