<?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[unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei]]></title><description><![CDATA[<p>hallo ich habe gerade einen Baum programmiert, einen text eingelesen und sortiert in eine neue Datei geschrieben mit der Methode.</p>
<pre><code class="language-cpp">template&lt;typename NODETYPE&gt;
ostream &amp;Tree&lt;NODETYPE&gt;::write(ostream&amp; os, TreeNode&lt;NODETYPE&gt; *&amp;ptr )const
{

	os&lt;&lt;left&lt;&lt;setw(20)&lt;&lt;setfill('.')&lt;&lt;ptr-&gt;data&lt;&lt;right&lt;&lt;ptr-&gt;frequency&lt;&lt;'\n'; // anstelle von '\n' ein endl läuft Fehlerfrei
	return os;

}
</code></pre>
<p>bei der Konsole hat er alles richtig sortiert ausgegeben so wie ich das wollte, aber im Text hat er es teilweise falsch sortiert ausgegeben.<br />
Nach längerem suchen ist mir aufgefallen das es an dem</p>
<pre><code class="language-cpp">'\n'
</code></pre>
<p>lag , als ich es durch</p>
<pre><code class="language-cpp">endl
</code></pre>
<p>erstetzt habe, hat er es sowohl in der Konsole wie auch in der Textdatei richtig sortiert und ausgegeben.</p>
<p>Meine Frage ist nun: Warum?</p>
<p>Ich persönlich hätte angenommen wenn er Falsch ausgibt dann sowohl in der Konsole als auch in der Textdatei.</p>
<p>das hat mich echt ein wenig Verwundert, kann mir das jemand erklären?</p>
<p>Grüße<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182296/unterschied-zwischen-n-und-endl-bei-einer-textdatei</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 19:42:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182296.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 May 2007 13:37:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 13:37:55 GMT]]></title><description><![CDATA[<p>hallo ich habe gerade einen Baum programmiert, einen text eingelesen und sortiert in eine neue Datei geschrieben mit der Methode.</p>
<pre><code class="language-cpp">template&lt;typename NODETYPE&gt;
ostream &amp;Tree&lt;NODETYPE&gt;::write(ostream&amp; os, TreeNode&lt;NODETYPE&gt; *&amp;ptr )const
{

	os&lt;&lt;left&lt;&lt;setw(20)&lt;&lt;setfill('.')&lt;&lt;ptr-&gt;data&lt;&lt;right&lt;&lt;ptr-&gt;frequency&lt;&lt;'\n'; // anstelle von '\n' ein endl läuft Fehlerfrei
	return os;

}
</code></pre>
<p>bei der Konsole hat er alles richtig sortiert ausgegeben so wie ich das wollte, aber im Text hat er es teilweise falsch sortiert ausgegeben.<br />
Nach längerem suchen ist mir aufgefallen das es an dem</p>
<pre><code class="language-cpp">'\n'
</code></pre>
<p>lag , als ich es durch</p>
<pre><code class="language-cpp">endl
</code></pre>
<p>erstetzt habe, hat er es sowohl in der Konsole wie auch in der Textdatei richtig sortiert und ausgegeben.</p>
<p>Meine Frage ist nun: Warum?</p>
<p>Ich persönlich hätte angenommen wenn er Falsch ausgibt dann sowohl in der Konsole als auch in der Textdatei.</p>
<p>das hat mich echt ein wenig Verwundert, kann mir das jemand erklären?</p>
<p>Grüße<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290732</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Wed, 23 May 2007 13:37:55 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 14:28:42 GMT]]></title><description><![CDATA[<p>Das kommt darauf an womit Du die Textdatei ausgibst. Vergleiche mal Notepad und WordPad mit der &quot;falsch&quot; geschriebenen Datei <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>
<p>BTW: Ist die Datei mit dem Flag ios::binary geöffnet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290769</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 23 May 2007 14:28:42 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 14:54:53 GMT]]></title><description><![CDATA[<p>Hm, dann nutze ich die Gelegenheit und frage auch mal:</p>
<p>Was ist denn der Unterschied, zwischen ios::binary und dem &quot;normalen&quot; Flags, wenn man ein endl oder \n reinschreibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290794</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Wed, 23 May 2007 14:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 15:10:52 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hatte es ohne binary, aber egal ob mit oder ohne, der Fehler bleibt bei</p>
<pre><code class="language-cpp">'\n'
</code></pre>
<p>bestehen.</p>
<p>eingelesen wird meine Datei so.</p>
<pre><code class="language-cpp">Tree&lt;string&gt; stringTree;
	string stringValue;

	fstream inFile(&quot;Text.txt&quot;, ios::binary |ios::in); 
	while(inFile&gt;&gt;stringValue)
	{
		stringTree.insertNode(stringValue);
	}
	stringTree.inOrderTraversal();
	inFile.close();
</code></pre>
<p>und hier wird in die neue Datei geschrieben.</p>
<pre><code class="language-cpp">fstream outFile(&quot;sortText.txt&quot;, ios::out|ios::ate|ios::app); 
	if(!outFile)
	{
		cerr &lt;&lt; &quot;File ist nicht vorhanden!&quot; &lt;&lt; endl;
		exit(1);
	}
	if ( ptr != 0 ) 
	{
		inOrderHelper( ptr-&gt;leftPtr ); // traverse left subtree  
		write(outFile,ptr); // falsche ausgabe mit '\n' aber richtige Ausgabe mit endl
		write(cout,ptr);    // korrekte ausgabe auch mit '\n'
		inOrderHelper( ptr-&gt;rightPtr ); // traverse right subtree
	} // end if
</code></pre>
<p>ich habe jetzt nicht ganz verstanden wie du das mit WordPad meinst, weil die Datei ist ja beschrieben und die Wörter stehen schon drin.<br />
Es ist ja egal mit was ich das jetzt öffne, oder hab ich da jetzt was fehlinterpretiert?</p>
<p>Gruss &amp; danke<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290806</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Wed, 23 May 2007 15:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 15:52:04 GMT]]></title><description><![CDATA[<p>also '\n' ist ein Unix-Zeilenende, da gibt es ab und zu Probleme bei Notepad, soweit ich mich erinnere^^ Das meinte er wohl.</p>
<p>Unter Windows ist glaube ich '\r\n' die Sequenz für einen Zeilenumbruch^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290848</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Wed, 23 May 2007 15:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 15:54:00 GMT]]></title><description><![CDATA[<p>Die Sache ist, dass es unter verschiedenen Betriebssystemen verschiedene Zeilenenden gibt. Unter Windows ist das &quot;\015\012&quot; (das ist oktal), oder &quot;Carriage-Return Linefeed&quot;, in C &quot;\r\n&quot;. Unter anderen Systemen reicht aber ein &quot;\012&quot; aka &quot;\n&quot;.</p>
<p>Wenn man jetzt unter Windows binär eine Datei schreibt, die am Ende der Zeilen nur &quot;\n&quot; hat, fehlt natürlich was. <strong>Aber</strong> viele Editoren (so auch Wordpad, und offenbar auch die Konsole) können auch solche UNIX-Zeilen korrekt anzeigen, Notepad jedoch nicht. Deshalb sieht es hier aus als wäre die komplette Datei in einer Zeile.</p>
<p>Jetzt war ich jedoch der Ansicht, dass wenn man &quot;\n&quot; im Textmodus in eine Datei schreibt, die Standardbibliothek automatisch das für das System passende daraus macht. Deshalb habe ich nach dem Binärmodus gefragt (und bin nun etwas verunsichert, was diese Ansicht angeht). endl ist jedoch immer ein zur Plattform passendes Zeilenende, deshalb klappt es damit wohl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290850</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 23 May 2007 15:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Wed, 23 May 2007 16:16:18 GMT]]></title><description><![CDATA[<p>ok dann sag ich mal danke für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290870</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Wed, 23 May 2007 16:16:18 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Thu, 24 May 2007 10:28:48 GMT]]></title><description><![CDATA[<p>Du solltest also immer Textdateien im Textmodus (also ohne ios::binary) sowohl lesen als auch schreiben. Und 'endl' ist besser als '\n', da unter Windows die Standard-Library die richtige Zeilenendung &quot;\r\n&quot; erzeugt.<br />
Du kannst es ja mal selber mit &quot;\r\n&quot; ausprobieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291304</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 24 May 2007 10:28:48 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Thu, 24 May 2007 10:33:29 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>Du solltest also immer Textdateien im Textmodus (also ohne ios::binary) sowohl lesen als auch schreiben. Und 'endl' ist besser als '\n', da unter Windows die Standard-Library die richtige Zeilenendung &quot;\r\n&quot; erzeugt.<br />
Du kannst es ja mal selber mit &quot;\r\n&quot; ausprobieren?</p>
</blockquote>
<p>Also diese Begründung ist Käse - im Textmodus kümmert sich der Stream (je nach verwendetem System) selbst darum, die \n umzurechnen zu einem \r\n und zurück. Und endl schreibt einfach nur ein '\n' und flusht anschließend den Stream (was bewirkt, daß die zuletzt ausgegebenen Daten <strong>tatsächlich</strong> auf der Festplatte landen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291308</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 24 May 2007 10:33:29 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Thu, 24 May 2007 10:40:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wichtig ist noch dass endl ein flush auf den stream macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291313</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Thu, 24 May 2007 10:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied zwischen &#x27;&#x5C;n&#x27; und  endl bei einer Textdatei on Thu, 24 May 2007 12:00:46 GMT]]></title><description><![CDATA[<p>CStoll, ja hast recht, mein Satz klingt falsch.<br />
Ich meinte, man sollte '\n' nicht einfach so im Binärmodus ausgeben.<br />
Nichtsdestotrotz halte ich persönlich 'endl' immer noch besser als '\n' zu schreiben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291366</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 24 May 2007 12:00:46 GMT</pubDate></item></channel></rss>