<?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 einlesen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe versucht mehrere Dateien einzulesen:</p>
<pre><code class="language-cpp">int main(int argc, char* argv[]) {
	if(argc==1) {
		cout &lt;&lt; &quot;Fehler: keine Dateien angegeben&quot;&lt;&lt;endl;
		return 0;
	}

	for(int i=1; i&lt;argc; ++i) {
		ifstream quelle;
		quelle.open(argv[i],ios::binary|ios::in);
		if(quelle) {
			char* buffer;
			int length;
			cout &lt;&lt; &quot;-----&quot; &lt;&lt; argv[i] &lt;&lt; &quot;-----&quot;&lt;&lt;endl;
			quelle.seekg (0, ios::end);
			length=quelle.tellg();
			quelle.seekg(0,ios::beg);
			buffer=new char[length];
			quelle.read (buffer,length);
			quelle.close();
			cout &lt;&lt; buffer;
			delete[] buffer;
			cout &lt;&lt; endl;
			cout &lt;&lt; &quot;---------------------&quot;;
			cout &lt;&lt; endl&lt;&lt;endl;
		}else{
			cout &lt;&lt; &quot;Datei: &quot; &lt;&lt; argv[i] &lt;&lt; &quot; nicht gefunden!&quot;;
		}
	}	
	return 0;
}
</code></pre>
<p>Es tritt folgendes Problem auf. Wenn ich 2 Dateien öffne:</p>
<p>Datei 1:</p>
<pre><code>Hallo
Test
123
</code></pre>
<p>Datei2:</p>
<pre><code>Noch ein
Test
</code></pre>
<p>Bekomme ich als Ausgabe bei Datei 2:</p>
<pre><code>Noch ein
Test
123
</code></pre>
<p>Also irgendwie wird der Buffer nicht richtig gelöscht. Aber ich lösche den doch nach jedem einlesen, oder etwa nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262918/datei-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 08:47:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262918.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Mar 2010 14:06:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei einlesen on Sat, 13 Mar 2010 14:06:58 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe versucht mehrere Dateien einzulesen:</p>
<pre><code class="language-cpp">int main(int argc, char* argv[]) {
	if(argc==1) {
		cout &lt;&lt; &quot;Fehler: keine Dateien angegeben&quot;&lt;&lt;endl;
		return 0;
	}

	for(int i=1; i&lt;argc; ++i) {
		ifstream quelle;
		quelle.open(argv[i],ios::binary|ios::in);
		if(quelle) {
			char* buffer;
			int length;
			cout &lt;&lt; &quot;-----&quot; &lt;&lt; argv[i] &lt;&lt; &quot;-----&quot;&lt;&lt;endl;
			quelle.seekg (0, ios::end);
			length=quelle.tellg();
			quelle.seekg(0,ios::beg);
			buffer=new char[length];
			quelle.read (buffer,length);
			quelle.close();
			cout &lt;&lt; buffer;
			delete[] buffer;
			cout &lt;&lt; endl;
			cout &lt;&lt; &quot;---------------------&quot;;
			cout &lt;&lt; endl&lt;&lt;endl;
		}else{
			cout &lt;&lt; &quot;Datei: &quot; &lt;&lt; argv[i] &lt;&lt; &quot; nicht gefunden!&quot;;
		}
	}	
	return 0;
}
</code></pre>
<p>Es tritt folgendes Problem auf. Wenn ich 2 Dateien öffne:</p>
<p>Datei 1:</p>
<pre><code>Hallo
Test
123
</code></pre>
<p>Datei2:</p>
<pre><code>Noch ein
Test
</code></pre>
<p>Bekomme ich als Ausgabe bei Datei 2:</p>
<pre><code>Noch ein
Test
123
</code></pre>
<p>Also irgendwie wird der Buffer nicht richtig gelöscht. Aber ich lösche den doch nach jedem einlesen, oder etwa nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868356</guid><dc:creator><![CDATA[Der Noob]]></dc:creator><pubDate>Sat, 13 Mar 2010 14:06:58 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sat, 13 Mar 2010 14:14:43 GMT]]></title><description><![CDATA[<p><code>buffer</code> ist nicht nullterminiert, daher erzeugst du undefiniertes Verhalten, wenn du es auf per <code>std::cout &lt;&lt; buffer</code> ausgibst. Entweder verwende einen nullterminierten Puffer oder verwende <code>std::ostream::write</code> .</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868360</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 13 Mar 2010 14:14:43 GMT</pubDate></item></channel></rss>