<?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[Frage zu &amp;quot;Datei einlesen&amp;quot;]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich hab hier einen Code von der c++ referenz:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main ()
{
	char c, str[256];
	ifstream file;

	cout &lt;&lt; &quot;Enter the name of an existing text file: &quot;;
	cin.get (str,256);

	file.open(str);        // open file

	while (file.good())     // loop while extraction from file is possible
	{
		c = file.get();       // get character from file
		if (file.good())
		{
			cout &lt;&lt; c;
		}
	}

	file.close();           // close file

return 0;
}
</code></pre>
<p>Wenn ich nun die Datei &quot;datei.txt&quot;, die im gleichen Ordner wie die main.cpp liegt, öffnen will, funktioniert das leider nicht. An was liegt das? Er springt mir vor der while-Schleife schon raus...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301742/frage-zu-quot-datei-einlesen-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 19:25:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301742.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Apr 2012 17:13:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 17:14:00 GMT]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich hab hier einen Code von der c++ referenz:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main ()
{
	char c, str[256];
	ifstream file;

	cout &lt;&lt; &quot;Enter the name of an existing text file: &quot;;
	cin.get (str,256);

	file.open(str);        // open file

	while (file.good())     // loop while extraction from file is possible
	{
		c = file.get();       // get character from file
		if (file.good())
		{
			cout &lt;&lt; c;
		}
	}

	file.close();           // close file

return 0;
}
</code></pre>
<p>Wenn ich nun die Datei &quot;datei.txt&quot;, die im gleichen Ordner wie die main.cpp liegt, öffnen will, funktioniert das leider nicht. An was liegt das? Er springt mir vor der while-Schleife schon raus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198064</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Mon, 02 Apr 2012 17:14:00 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 17:17:19 GMT]]></title><description><![CDATA[<p>1. Funktionirt nicht ist keine Problembeschreibung<br />
2. Die Datei wird im working directory geöffnet, die main.cpp interessiert nicht ( im Zweifelsfall ist sie gelöscht oder auf einem anderen Rechner)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198065</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 02 Apr 2012 17:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 17:21:59 GMT]]></title><description><![CDATA[<p>Es ist erstaunlich wie beliebt die Referenz ist, denn der Code ist anders schlecht.</p>
<ol>
<li>Dateiname wird in char-Array gelesen</li>
<li>Keine Spur von RAII</li>
<li>Zweifacher Check auf good(), obwohl einer reichen würde und obwohl der Stream nach bool konvertierbar ist.</li>
<li>(return 0 ist unnötig und using namespace std ist unschön)</li>
</ol>
<p>Und das in 11 Zeile Code <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/2198067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198067</guid><dc:creator><![CDATA[fairdiceroll]]></dc:creator><pubDate>Mon, 02 Apr 2012 17:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 17:32:41 GMT]]></title><description><![CDATA[<p>Was heißt workin directory?</p>
<p>Ich hab hier ein MS Visual studion 2010 Projekt offen und ich kann die datei da hinkopieren wo ich will, der öffnet mir die einfach nicht...</p>
<p>Funktioniert nicht heißt er öffnet mir sie nicht. Ich hab eigentlich gedacht, dass ist an dieser Stelle klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198069</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Mon, 02 Apr 2012 17:32:41 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 17:49:29 GMT]]></title><description><![CDATA[<p>Schreib einfach mal in ne Datei und schau wo sie gespeichert wird. <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/2198077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198077</guid><dc:creator><![CDATA[ZeroXCola]]></dc:creator><pubDate>Mon, 02 Apr 2012 17:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 18:47:20 GMT]]></title><description><![CDATA[<p>Hab das mal teilweise umgesetzt was fairdiceroll schrieb:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

int main ()
{
    char c;
    std::string str;

    std::cout &lt;&lt; &quot;Enter the name of an existing text file: &quot;;
    std::cin &gt;&gt; str;

    std::ifstream file(str.c_str());        // open file - old style
    while (file.good())     // loop while extraction from file is possible
    {
        c = file.get();       // get character from file
        std::cout &lt;&lt; c;
    }
}
</code></pre>
<p>Das:</p>
<pre><code class="language-cpp">std::ifstream file(str.c_str());        // open file - old style
</code></pre>
<p>sollten die aktuellen C++11 Compiler auch ohne:</p>
<pre><code class="language-cpp">.c_str()
</code></pre>
<p>können. Oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198089</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Mon, 02 Apr 2012 18:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 19:01:14 GMT]]></title><description><![CDATA[<p>Etwas übersehen - es wird noch ein Zeichen geschrieben, wenn die Datei &quot;bad&quot;. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Dann doch:</p>
<pre><code class="language-cpp">while (file.good())     // loop while extraction from file is possible
    {
        c = file.get();       // get character from file
        if (file.good())	// =&gt; because the last char if file not good
            std::cout &lt;&lt; c;
    }
</code></pre>
<p>oder zeigt die bessere Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198096</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Mon, 02 Apr 2012 19:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 19:22:20 GMT]]></title><description><![CDATA[<p>Wie ich mir das vorstelle:</p>
<pre><code class="language-cpp">int main ()
{
    std::cout &lt;&lt; &quot;Enter the name of an existing text file: &quot;;
    std::string str;
    getline(std::cin, str);

    if (std::ifstream file{str}) // diese Zeile ist C++11
      for (char c=file.get(); file; c=file.get())
        std::cout &lt;&lt; c;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2198102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198102</guid><dc:creator><![CDATA[fairdiceroll]]></dc:creator><pubDate>Mon, 02 Apr 2012 19:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Datei einlesen&amp;quot; on Mon, 02 Apr 2012 19:27:22 GMT]]></title><description><![CDATA[<p>Weil es zu Lernzwecken ist, alternativ auch</p>
<pre><code class="language-cpp">if (std::ifstream file{str})
  for (;;) {
    char c = file.get(); // extract char
    if (!file) // c may have the value of Traits::eof()
      break;   // then we have finished          
    std::cout &lt;&lt; c;
  }
</code></pre>
<p>Lustigerweise steht auf der C++ Referenz nichts von <code>Traits::eof()</code> . Das musste ich auf der <a href="http://en.cppreference.com/w/cpp/io/basic_istream/get" rel="nofollow">wahren Referenz</a> nachschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198103</guid><dc:creator><![CDATA[fairdiceroll]]></dc:creator><pubDate>Mon, 02 Apr 2012 19:27:22 GMT</pubDate></item></channel></rss>