<?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 lesen problem]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich steh gerade total auf dem Schlauch bei einer eigentlich super einfachen Aufgabe.Leider komm ich nicht einfach dahinter warum das ganze nicht geht.<br />
Hier ist die Grund-Funktion :</p>
<pre><code class="language-cpp">void FileManager::readFile (iopath filename,std::vector&lt;std::string&gt; file_content) {
	std::fstream file(filename.c_str(),std::ios::in);
	std::string file_line;

	while ( !file.eof () ) {
		std::getline(file,file_line);
		file_content.push_back(file_line);
	}
	file.close();
}
</code></pre>
<p>Das ganze ruf ich dann so auf :</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; y;

	fmgr.readFile(&quot;a.txt&quot;,y);

	for (int i = 0; i &lt; y.size(); i++) {
		std::cout &lt;&lt; y[i] &lt;&lt; std::endl;
	}
</code></pre>
<p>Das Problem ist, der string file_line bei getline garnicht in den vector erst hinein gespeichert.Beim debuggen hat der Vector immer nur 0 Elemente.<br />
Sieht jemand den Fehler ? Ich vermute ich übersehe einfach irgendetwas gewaltig.</p>
<p>Danke schon mal.<br />
Mfg 7xCore</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307845/datei-lesen-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 09:02:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307845.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Sep 2012 15:34:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 15:37:44 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich steh gerade total auf dem Schlauch bei einer eigentlich super einfachen Aufgabe.Leider komm ich nicht einfach dahinter warum das ganze nicht geht.<br />
Hier ist die Grund-Funktion :</p>
<pre><code class="language-cpp">void FileManager::readFile (iopath filename,std::vector&lt;std::string&gt; file_content) {
	std::fstream file(filename.c_str(),std::ios::in);
	std::string file_line;

	while ( !file.eof () ) {
		std::getline(file,file_line);
		file_content.push_back(file_line);
	}
	file.close();
}
</code></pre>
<p>Das ganze ruf ich dann so auf :</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; y;

	fmgr.readFile(&quot;a.txt&quot;,y);

	for (int i = 0; i &lt; y.size(); i++) {
		std::cout &lt;&lt; y[i] &lt;&lt; std::endl;
	}
</code></pre>
<p>Das Problem ist, der string file_line bei getline garnicht in den vector erst hinein gespeichert.Beim debuggen hat der Vector immer nur 0 Elemente.<br />
Sieht jemand den Fehler ? Ich vermute ich übersehe einfach irgendetwas gewaltig.</p>
<p>Danke schon mal.<br />
Mfg 7xCore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249160</guid><dc:creator><![CDATA[7xCore]]></dc:creator><pubDate>Thu, 06 Sep 2012 15:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 15:46:02 GMT]]></title><description><![CDATA[<p>7xCore schrieb:</p>
<blockquote>
<p>Beim debuggen hat der Vector immer nur 0 Elemente.</p>
</blockquote>
<p>Welcher vector? In der Funktion oder ausserhalb? ( die Frage könnte schon die Lösung für dein Problem enthalten )</p>
<p>Warum der Test auf eof Müll ist wurde hier im Forum schon millionenfach erklärt =&gt; Suchfunktion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249166</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 06 Sep 2012 15:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 15:46:44 GMT]]></title><description><![CDATA[<p>1. Du speicherst deine Zeilen in einem lokalen vector, der existiert nach Funktionsende nicht mehr. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Referenzen<br />
2. Die Einleselogik ist verquer. Was, wenn das getline ein eof erzeugt, weil das Dateiende erreicht wird? Dann speicherst du Müll ab, weil du erst nach dem Speichern auf Fehler prüfst. Warum eigentlich nur eof und nicht alles andere, wenn es die Fehlerprüfung auf alles zum Preis von einem gibt? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <code>while(lesen) verarbeiten;</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249167</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 06 Sep 2012 15:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 15:51:29 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>1. Du speicherst deine Zeilen in einem lokalen vector, der existiert nach Funktionsende nicht mehr. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Referenzen<br />
2. Die Einleselogik ist verquer. Was, wenn das getline ein eof erzeugt, weil das Dateiende erreicht wird? Dann speicherst du Müll ab, weil du erst nach dem Speichern auf Fehler prüfst. Warum eigentlich nur eof und nicht alles andere, wenn es die Fehlerprüfung auf alles zum Preis von einem gibt? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <code>while(lesen) verarbeiten;</code></p>
</blockquote>
<p>1.Ah verdammt!Danke sehr das war es natürlich.<br />
2.Das Überprüfen auf Fehler und ob die Datei überhaupt vorhanden ist etc.. war erst mein nächster Schritt.<br />
3.Statt eof was sollte ich da nehmen?Sehen wie groß die Datei ist und dann anhand der Größe einlesen ?Oder gibts da besseres ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249172</guid><dc:creator><![CDATA[7xCore]]></dc:creator><pubDate>Thu, 06 Sep 2012 15:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:00:45 GMT]]></title><description><![CDATA[<p>7xCore schrieb:</p>
<blockquote>
<p>3.Statt eof was sollte ich da nehmen?Sehen wie groß die Datei ist und dann anhand der Größe einlesen ?Oder gibts da besseres ?</p>
</blockquote>
<pre><code class="language-cpp">while ( !file.eof () ) {
        std::getline(file,file_line);
        file_content.push_back(file_line);
    }
</code></pre>
<p>-&gt;</p>
<pre><code class="language-cpp">while ( std::getline(file,file_line) ) 
        file_content.push_back(file_line);
</code></pre>
<p>Sobald das Lesen fehlschlägt biste ja am Ende der Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249176</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:00:45 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:03:41 GMT]]></title><description><![CDATA[<p>Würde auch</p>
<pre><code class="language-cpp">while(file) {
...
}
</code></pre>
<p>gehen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249179</guid><dc:creator><![CDATA[7xCore]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:12:37 GMT]]></title><description><![CDATA[<p>7xCore schrieb:</p>
<blockquote>
<p>Würde auch</p>
<pre><code class="language-cpp">while(file) {
...
}
</code></pre>
<p>gehen ?</p>
</blockquote>
<p>Kommt drauf an, was ... genau ist. Ich wette du planst da etwas, was keinen Sinn macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249184</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:15:57 GMT]]></title><description><![CDATA[<p>Da hast du recht!<br />
Ich wollte das ganz so machen, um zu überprüfen ob die datei vorhanden ist :</p>
<pre><code class="language-cpp">std::fstream file....;

if(file) {
while(.....

..}
}
else {std::cerr &lt;&lt; &quot;Unable to open file&quot; &lt;&lt; std::endl;}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2249187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249187</guid><dc:creator><![CDATA[7xCore]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:15:57 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:20:21 GMT]]></title><description><![CDATA[<p>Nimmst du <code>file.is_open()</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249189</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:20:21 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:25:46 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Nimmst du <code>file.is_open()</code></p>
</blockquote>
<p>Wozu? Damit es laenger ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249190</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:25:46 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:27:57 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>out schrieb:</p>
<blockquote>
<p>Nimmst du <code>file.is_open()</code></p>
</blockquote>
<p>Wozu? Damit es laenger ist?</p>
</blockquote>
<p>Nö, weil is_open() immer funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249192</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:29:33 GMT]]></title><description><![CDATA[<p>Und in welchem Fall tut das die Konvertierung zu bool nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249194</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:29:33 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 16:35:10 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Und in welchem Fall tut das die Konvertierung zu bool nicht?</p>
</blockquote>
<p>Nein das meinte ich nicht. Ich meinte, dass <code>if(file)</code> nicht dazu gedacht ist, um zu prüfen, ob eine <code>file</code> nun mit einer Datei verbunden ist, oder nicht.</p>
<pre><code class="language-cpp">int main()
{
	std::fstream file;
	if(file)
	{
		std::cout &lt;&lt; &quot;ok&quot;;
	}
	else
	{
		std::cerr &lt;&lt; &quot;Unable to open file&quot; &lt;&lt; std::endl;
	}
}
</code></pre>
<p>Oder auch</p>
<pre><code class="language-cpp">int main()
{
	std::fstream file(&quot;test.txt&quot;);
	if(file)
	{
		std::cout &lt;&lt; &quot;ok&quot;;
	}
	else
	{
		std::cerr &lt;&lt; &quot;Unable to open file&quot; &lt;&lt; std::endl;
	}

	file.close();

	if(file)
	{
		std::cout &lt;&lt; &quot;ok&quot;;
	}
	else
	{
		std::cerr &lt;&lt; &quot;Unable to open file&quot; &lt;&lt; std::endl;
	}
}
</code></pre>
<p>Nennt sich ja auch nicht umsonst <code>is_open()</code> . <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249196</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 06 Sep 2012 16:35:10 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen problem on Thu, 06 Sep 2012 17:00:10 GMT]]></title><description><![CDATA[<p>is_open(); brauch ich aber nicht, das ganze ist ja innerhalb eines Scopes gehalten und wird auch nur einmal gebraucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249207</guid><dc:creator><![CDATA[7xCore]]></dc:creator><pubDate>Thu, 06 Sep 2012 17:00:10 GMT</pubDate></item></channel></rss>