<?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[Ist dieser Code &amp;quot;schön&amp;quot;?]]></title><description><![CDATA[<p>Ich schrieb folgendes Programm zur Zählung der Buchstabenhäufigkeiten als Übung.</p>
<p>Ist der Stil in dem ich programmiere okay oder mach ich irgendwelche Kardinalsfehler?</p>
<pre><code>/* ###### Buchstaben zählen
	## Zählt die Häufigkeiten der Buchstaben eines Textdokuments
	## Autor: Viken Emesh
	## Datum: 06.01.2011
*/
#define WIN32_LEAN_AND_MEAN

#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;limits&gt;
#include &lt;ctype.h&gt;

using namespace std;

int end();

int main (int argc, char * argv[]) {
	ifstream file;

	int count[26]={0};
	int inchar;

	if (argc&lt;2) {
		cout&lt;&lt;&quot;Nicht genug Parameter!\n&quot;;
		return end();
	}

	file.open(argv[1]);
	if (!file) {
		cout&lt;&lt;&quot;Dateifehler!\n&quot;;
		return end();
	}

	while (!file.eof()) {
		inchar= toupper(file.get());
		if (inchar&gt;='A' &amp;&amp; inchar&lt;='Z') {
			count[inchar-'A']++;
		}
	}
	file.close();

	cout&lt;&lt;&quot;Häufigkeiten der Buchstaben:\n&quot;;
	for(int i=0;i&lt;26;i++) {
		cout&lt;&lt;(char)(i+'A')&lt;&lt;&quot;: &quot;&lt;&lt;count[i]&lt;&lt;&quot;\n&quot;;
	}

	cout&lt;&lt;&quot;\n&quot;;

	return end();
}

int end() {
	cout&lt;&lt;&quot;Enter drücken zum Beenden...&quot;;
	cin.ignore(numeric_limits&lt;streamsize&gt;::max(),'\n');
	return 0;
}
</code></pre>
<p>Ich bedanke mich schonmal für eure Meinung <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/279942/ist-dieser-code-quot-schön-quot</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 01:18:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279942.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Jan 2011 16:02:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 16:02:45 GMT]]></title><description><![CDATA[<p>Ich schrieb folgendes Programm zur Zählung der Buchstabenhäufigkeiten als Übung.</p>
<p>Ist der Stil in dem ich programmiere okay oder mach ich irgendwelche Kardinalsfehler?</p>
<pre><code>/* ###### Buchstaben zählen
	## Zählt die Häufigkeiten der Buchstaben eines Textdokuments
	## Autor: Viken Emesh
	## Datum: 06.01.2011
*/
#define WIN32_LEAN_AND_MEAN

#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;limits&gt;
#include &lt;ctype.h&gt;

using namespace std;

int end();

int main (int argc, char * argv[]) {
	ifstream file;

	int count[26]={0};
	int inchar;

	if (argc&lt;2) {
		cout&lt;&lt;&quot;Nicht genug Parameter!\n&quot;;
		return end();
	}

	file.open(argv[1]);
	if (!file) {
		cout&lt;&lt;&quot;Dateifehler!\n&quot;;
		return end();
	}

	while (!file.eof()) {
		inchar= toupper(file.get());
		if (inchar&gt;='A' &amp;&amp; inchar&lt;='Z') {
			count[inchar-'A']++;
		}
	}
	file.close();

	cout&lt;&lt;&quot;Häufigkeiten der Buchstaben:\n&quot;;
	for(int i=0;i&lt;26;i++) {
		cout&lt;&lt;(char)(i+'A')&lt;&lt;&quot;: &quot;&lt;&lt;count[i]&lt;&lt;&quot;\n&quot;;
	}

	cout&lt;&lt;&quot;\n&quot;;

	return end();
}

int end() {
	cout&lt;&lt;&quot;Enter drücken zum Beenden...&quot;;
	cin.ignore(numeric_limits&lt;streamsize&gt;::max(),'\n');
	return 0;
}
</code></pre>
<p>Ich bedanke mich schonmal für eure Meinung <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/2003233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003233</guid><dc:creator><![CDATA[vikenemesh]]></dc:creator><pubDate>Thu, 06 Jan 2011 16:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 16:16:35 GMT]]></title><description><![CDATA[<p>nimm mal beim newline noch ein carriage return dazu,...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003241</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Thu, 06 Jan 2011 16:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 16:25:21 GMT]]></title><description><![CDATA[<p>Okay, mit welcher Begründung?<br />
Funktionell ist das ja kein Unterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003245</guid><dc:creator><![CDATA[vikenemesh]]></dc:creator><pubDate>Thu, 06 Jan 2011 16:25:21 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 16:49:25 GMT]]></title><description><![CDATA[<p><s>[c]return end();[/c] ist völliger Blödsinn. [c]return 0[/c] <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="😉"
    /><br />
Wahlweise kannst du [c]std::end[/c] auch anstatt von [c]\n[/c] benutzen. Die Ausgabe wird damit sofort geflusht, d.H. sofort ausgegeben.</s></p>
<p>Edit: Vergiss es <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Das mit dem <code>\r</code> liegt daran, dass Windows in Dateien normalerweise \r\n als Zeilenumbruch benutzt. Wenn du aber Binärdateien hast, ist dies nicht unbedingt der Fall. Selbiges, wenn du eine Datei aus Linux-Umgebung herunterlädst oder mit einem Texteditor (Beispielsweise Notepad++) einstellst, dass du Unix-Zeilenänderungen haben möchtest. Also vorsichtig damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003254</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Thu, 06 Jan 2011 16:49:25 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 16:53:40 GMT]]></title><description><![CDATA[<p>Der Spaß mit \r\n ist mir bekannt, aber ich benutze hier ja nur die Konsolenstreams im Zusammenhang mit \n, also bin ich richtig in der Annahme, dass ich es hier bei \n belassen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003257</guid><dc:creator><![CDATA[vikenemesh]]></dc:creator><pubDate>Thu, 06 Jan 2011 16:53:40 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 16:56:13 GMT]]></title><description><![CDATA[<p>Das carriage return macht deinen Code unportabel, lass das.</p>
<pre><code class="language-cpp">ifstream file;n
...
file.open(argv[1]);
</code></pre>
<p>würde ich folgendermassen abändern:</p>
<pre><code class="language-cpp">ifstream file(argv[1]);
</code></pre>
<p>Dann ersparst du dir die Initialisierung von <code>file</code> wenn <code>argc&lt;2</code> . Allgemein sollte man die Variablendeklaration so lange wie möglich hinauszögern.</p>
<pre><code class="language-cpp">if (argc&lt;2) {
    cout&lt;&lt;&quot;Nicht genug Parameter!\n&quot;;
    return end();
}
</code></pre>
<p>Warum** <code>return</code> ** <code>end();</code> ? Bei falschen Argumenten hätte ich <em>(a)</em> so etwas wie &quot;Aufruf: buchstabenzaehler [DATEI]&quot; ausgegeben und <em>(b)</em> einen von 0 verschiedenen Rückgabewert genommen.<br />
<code>end()</code> stört bei normaler Konsolennutzung und ich hätte das in der endgültigen Version rausgenommen (für Debugzwecke ist es in Ordnung).</p>
<pre><code class="language-cpp">int count[26]={0}; // lass das ={0} weg
</code></pre>
<pre><code class="language-cpp">while (!file.eof()) // alternativ:
while (file)
</code></pre>
<p>Bei end() fehlt ein <code>&lt;&lt;std::flush</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003261</guid><dc:creator><![CDATA[encourriage]]></dc:creator><pubDate>Thu, 06 Jan 2011 16:56:13 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:05:50 GMT]]></title><description><![CDATA[<p>Mein Code sieht jetzt so aus.</p>
<pre><code>/* ###### Buchstaben zählen
	## Zählt die Häufigkeiten der Buchstaben eines Textdokuments
	## Autor: Viken Emesh
	## Datum: 06.01.2011
*/
#define WIN32_LEAN_AND_MEAN

#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;limits&gt;
#include &lt;ctype.h&gt;

using namespace std;

int main (int argc, char * argv[]) {
	if (argc&lt;2) {
		cout&lt;&lt;&quot;Nicht genug Parameter!\n&quot;;
		return -1;
	}

	ifstream file(argv[1]);
	if (!file) {
		cout&lt;&lt;&quot;Dateifehler!\n&quot;;
		return -1;
	}

	int count[26]={0};
	int inchar;
	while (file) {
		inchar= toupper(file.get());
		if (inchar&gt;='A' &amp;&amp; inchar&lt;='Z') {
			count[inchar-'A']++;
		}
	}
	file.close();

	cout&lt;&lt;&quot;Häufigkeiten der Buchstaben:\n&quot;;
	for(int i=0;i&lt;26;i++) {
		cout&lt;&lt;(char)(i+'A')&lt;&lt;&quot;: &quot;&lt;&lt;count[i]&lt;&lt;&quot;\n&quot;;
	}

	cout.flush();
	return 0;
}
</code></pre>
<p>Das &quot;int count[26]={0}&quot; benutze ich um alle Elemte auf 0 zu initialisieren, das muss ich doch machen damit &quot;count[i]++&quot; hinhaut, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003270</guid><dc:creator><![CDATA[vikenemesh]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:19:02 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u2822" rel="nofollow">SideWinder</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f13" rel="nofollow">DOS und Win32-Konsole</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003276</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:21:53 GMT]]></title><description><![CDATA[<p>Das define kannst du entfernen, sowie include string und limits. Ich sehe nicht das diese in deinem Code verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003278</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:21:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:30:43 GMT]]></title><description><![CDATA[<p>Oh danke, hatte ich noch übersehen.<br />
Ansonsten stimmt jetzt alles?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003283</guid><dc:creator><![CDATA[vikenemesh]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:27:53 GMT]]></title><description><![CDATA[<p>Das mit dem Variablendeklaration so lange wie möglich hinauszögern lässt sich auch auf <code>inchar</code> anwenden.<br />
und der <code>flush</code> war nur vonnöten, weil du die Zeile noch nicht fertig geschrieben hast. Jetzt brauchts den nicht mehr.</p>
<p>Bei dem Hinweis zu <code>int count[26]={0}</code> habe ich einen Fehler gemacht, ich hätte bei mir nämlich <code>std::vector&lt;int&gt; count(26)</code> verwendet und da ist automatisch alles auf 0. Ich habe irgendwie gedacht, das sei selbst bei POD-Arrays der Fall...</p>
<p>Errors könntest du auf <code>cerr</code> ausgeben.</p>
<p>Viel mehr fällt mir eigentlich nicht auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003286</guid><dc:creator><![CDATA[encourriage]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:27:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:34:31 GMT]]></title><description><![CDATA[<p>Der C++-Header heißt <em>cctype</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003289</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:34:31 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 17:38:50 GMT]]></title><description><![CDATA[<p>Das <code>file.close();</code> brauchst du nicht. Der Destruktor des fstream-Objekts schließt die Datei. Nutze dies.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003292</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 06 Jan 2011 17:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Thu, 06 Jan 2011 18:14:02 GMT]]></title><description><![CDATA[<p>Danke an alle.<br />
In Zukunft werde ich die Tipps dann umsetzten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003305</guid><dc:creator><![CDATA[vikenemesh]]></dc:creator><pubDate>Thu, 06 Jan 2011 18:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Fri, 07 Jan 2011 08:52:21 GMT]]></title><description><![CDATA[<p>Vielleicht wäre std::map&lt;char,unsigned int&gt; hübscher als ein rohes C-style Array. Damit musst du keinen Index mehr verbiegen und hast eine direkete Zuordnung von Buchstabe zu dessen Anzahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003445</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 07 Jan 2011 08:52:21 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Fri, 07 Jan 2011 09:16:13 GMT]]></title><description><![CDATA[<p>encourriage schrieb:</p>
<blockquote>
<p>Das carriage return macht deinen Code unportabel, lass das.</p>
</blockquote>
<p>?? Das ist nicht ganz richtig, geschichtlich gesehen ist der cursor bei der<br />
ausgabe von \n <strong>nicht</strong> nach vorne gesetzt worden,..<br />
Der carrier musste nach vorne mittels \r gesetzt werden.<br />
Halt die pure Funktionalität der Steuerungszeichen (ASCII) ist Aufgrund von<br />
Abwärtskompatibilität bei Konsolenanwendungen (und EXAKT bei externer perephiere) heute noch zu Gewährleisten.</p>
<p>Daher ist die genannte &quot;unportabilität&quot; eigentlich nur durch verwendung eines unvollständigen satzes an steuerzeichen vorhanden...</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003454</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Fri, 07 Jan 2011 09:16:13 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 03:38:24 GMT]]></title><description><![CDATA[<p>du könntest noch return -<strong>1</strong>; für &quot;Nicht genug Parameter&quot; und return -<strong>2</strong>; für &quot;Dateifehler&quot; machen.</p>
<p>Beim Parameterfehler sollte er sagen wie es richtig geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008582</guid><dc:creator><![CDATA[kenner der schönheit]]></dc:creator><pubDate>Wed, 19 Jan 2011 03:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 09:13:22 GMT]]></title><description><![CDATA[<p>zeusosc schrieb:</p>
<blockquote>
<p>?? Das ist nicht ganz richtig, geschichtlich gesehen ist der cursor bei der<br />
ausgabe von \n <strong>nicht</strong> nach vorne gesetzt worden,..<br />
Der carrier musste nach vorne mittels \r gesetzt werden.<br />
Halt die pure Funktionalität der Steuerungszeichen (ASCII) ist Aufgrund von<br />
Abwärtskompatibilität bei Konsolenanwendungen (und EXAKT bei externer perephiere) heute noch zu Gewährleisten.</p>
<p>Daher ist die genannte &quot;unportabilität&quot; eigentlich nur durch verwendung eines unvollständigen satzes an steuerzeichen vorhanden...</p>
</blockquote>
<p>Blödsinn. Sorry.</p>
<p>Prinzipiell stimmt es ja was du schreibst - aber das ist alles irrelevant. \n ist die korrekte Schreibweise hier. Denn dafür sorgt das System. \r\n kann zuviel machen (muss aber nicht). zB auf OS 9 wäre \r\n falsch.</p>
<p>Deshalb: \n ist die korrekte und portable Form.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008612</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 19 Jan 2011 09:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 11:56:45 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Deshalb: \n ist die korrekte und portable Form.</p>
</blockquote>
<p>Ist nicht eher <code>std::endl</code> die korrekte und portable Form? Macht halt leider noch ein flush dazu, sollte hier aber nicht weh tun. Ich kenne es so, dass die Zeilentrenner wie folgt sind: Windows \r\n, Linux \n, MacOS \r.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008690</guid><dc:creator><![CDATA[fdgdfg]]></dc:creator><pubDate>Wed, 19 Jan 2011 11:56:45 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 12:21:08 GMT]]></title><description><![CDATA[<p>fdgdfg schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Deshalb: \n ist die korrekte und portable Form.</p>
</blockquote>
<p>Ist nicht eher <code>std::endl</code> die korrekte und portable Form? Macht halt leider noch ein flush dazu, sollte hier aber nicht weh tun. Ich kenne es so, dass die Zeilentrenner wie folgt sind: Windows \r\n, Linux \n, MacOS \r.</p>
</blockquote>
<p>Nein \n in einem Text-Kontext ist schon OK. Wenn du mit einer binaer Datei (ios::binary) arbeitest, ist \r\n und \n unter windows unterschiedlich - im Text-Kontext nicht.</p>
<p>Und unter OS X hast du auch \n als Line Ending. \r war unter OS 9</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008705</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 19 Jan 2011 12:21:08 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 14:08:06 GMT]]></title><description><![CDATA[<p>Frage: wenn <code>\n</code> unter Windows durch <code>\r\n</code> ersetzt wird, wäre dann ein <code>\r\n</code> selbst dort falsch? Es müsste doch zu <code>\r\r\n</code> geändert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008762</guid><dc:creator><![CDATA[windowsignorant]]></dc:creator><pubDate>Wed, 19 Jan 2011 14:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 14:16:47 GMT]]></title><description><![CDATA[<p>Shadow of Mine hat es doch schon erläutert. Der einzige Grund für das Text-Flag bei Dateioperationen, ist der unterschiedliche Zeilenumbruch. Ein Zusätzliches Carriage Return \r tut aber nicht weh. Es veranlasst ja nur, dass der Cursor an den Zeilenanfang geht, dort ist er aber schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008764</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Wed, 19 Jan 2011 14:16:47 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 15:59:37 GMT]]></title><description><![CDATA[<p>Paul Müller schrieb:</p>
<blockquote>
<p>Ein Zusätzliches Carriage Return \r tut aber nicht weh.</p>
</blockquote>
<p>Kommt wohl sehr drauf an, wie der Editor das interpretiert. Warum überhaupt ein <code>'\r'</code> zuviel, wenn <code>'\n'</code> reicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008833</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 19 Jan 2011 15:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 16:22:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;cctype&gt;
#include &lt;map&gt;

typedef std::map&lt;char, int&gt; Occurrences;

int main(int argc, char *argv[])
{
	if (argc &lt; 2)
	{
		std::cerr &lt;&lt; &quot;Zu wenig Parameter uebergeben&quot; &lt;&lt; std::endl;

		return -1;
	}

	std::ifstream file(&quot;a.txt&quot;);

	if (!file.good())
	{
		std::cerr &lt;&lt; &quot;Datei konnte nicht geoffnet werden&quot; &lt;&lt; std::endl;

		return -2;
	}

	Occurrences occurrences;

	for (int i = 0; i &lt; 26; ++i)
	{
		occurrences['A' + i] = 0;
	}

	int counted = 0;

	while (!file.eof())
	{
		char ch = file.get();

		if (isalpha(ch))
		{
			++occurrences[toupper(ch)];

			++counted;
		}
	}

	std::cout.precision(3);

	for (Occurrences::iterator it = occurrences.begin(); it != occurrences.end(); ++it)
	{
		std::cout &lt;&lt; it-&gt;first &lt;&lt; &quot; = &quot; &lt;&lt; it-&gt;second &lt;&lt; &quot; (&quot; &lt;&lt; (static_cast&lt;float&gt;(it-&gt;second) / counted) * 100.f &lt;&lt; &quot;%)&quot; &lt;&lt; std::endl;
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2008844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008844</guid><dc:creator><![CDATA[trzrtztr]]></dc:creator><pubDate>Wed, 19 Jan 2011 16:22:31 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 19:06:24 GMT]]></title><description><![CDATA[<p>trzrtztr schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...
</code></pre>
</blockquote>
<p>Schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Persönlich mag ich statt</p>
<pre><code class="language-cpp">if (!file.good())
</code></pre>
<p>so was:</p>
<pre><code class="language-cpp">if (0 == file.good())
</code></pre>
<p>Und statt</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; 26; ++i)
</code></pre>
<p>das:</p>
<pre><code class="language-cpp">size_t i = 0u;
...
for (i = 0u; i &lt; 26u; ++i)
</code></pre>
<p>ints mag ich überhaupt nicht <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/2008930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008930</guid><dc:creator><![CDATA[abc.w]]></dc:creator><pubDate>Wed, 19 Jan 2011 19:06:24 GMT</pubDate></item><item><title><![CDATA[Reply to Ist dieser Code &amp;quot;schön&amp;quot;? on Wed, 19 Jan 2011 19:44:28 GMT]]></title><description><![CDATA[<p>abc.w schrieb:</p>
<blockquote>
<p>Persönlich mag ich statt</p>
<pre><code class="language-cpp">if (!file.good())
</code></pre>
<p>so was:</p>
<pre><code class="language-cpp">if (0 == file.good())
</code></pre>
</blockquote>
<p>Nicht nur, dass du <code>0</code> statt <code>false</code> nimmst, auch die explizite Abfrage boolscher Werte und das Literal auf der linken Seite... Finde ich <strong>sehr</strong> übel. <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/2008946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008946</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 19 Jan 2011 19:44:28 GMT</pubDate></item></channel></rss>