<?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[Dateiverarbeitung]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine Aufgabe im Studium, auf der ich keine Lösung zu der Randbedingung habe.</p>
<p>Kann mir jemand die Randbedingung genauerer erläutern? (Welche Schritte gemacht werden müssen)</p>
<p>Es müsste ja ein int Feld [24] deklariert werden.<br />
Aber was danach kommt, weiß ich nicht.</p>
<p>Danke</p>
<p><strong>Aufgabe 4 Dateiverarbeitung (20 P)<br />
Schreiben Sie ein lauffähiges Programm, das eine vorhandene Textdatei „daten.txt“ zum<br />
Lesen öffnet, den gesamten Inhalt zeichenweise aus der Datei liest und zählt, wie oft jeder<br />
einzelne Großbuchstaben im Text vorkommt. Geben Sie das Zählergebnis für jeden<br />
Buchstaben einzeln wie folgt auf dem Bildschirm aus.<br />
Beispielausgabe mit Häufigkeiten für jeden einzelnen Buchstaben:<br />
A: 24<br />
B: 26<br />
C: 7<br />
…<br />
Z: 4<br />
Randbedingung:<br />
Verwenden Sie zum Zählen der einzelnen Buchstaben ein ausreichend großes Feld von<br />
Zählern (Integer-Werte). Konvertieren Sie einen im Text gefundenen Großbuchstaben stets<br />
so, dass das Konvertierungsergebnis direkt als Index für den Zugriff auf den passenden Zähler<br />
verwendet werden kann.<br />
Geben Sie den vollständigen, kompilierbaren Quellcode für das Programm an.</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307530/dateiverarbeitung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 18:01:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307530.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Aug 2012 08:43:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 08:43:02 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine Aufgabe im Studium, auf der ich keine Lösung zu der Randbedingung habe.</p>
<p>Kann mir jemand die Randbedingung genauerer erläutern? (Welche Schritte gemacht werden müssen)</p>
<p>Es müsste ja ein int Feld [24] deklariert werden.<br />
Aber was danach kommt, weiß ich nicht.</p>
<p>Danke</p>
<p><strong>Aufgabe 4 Dateiverarbeitung (20 P)<br />
Schreiben Sie ein lauffähiges Programm, das eine vorhandene Textdatei „daten.txt“ zum<br />
Lesen öffnet, den gesamten Inhalt zeichenweise aus der Datei liest und zählt, wie oft jeder<br />
einzelne Großbuchstaben im Text vorkommt. Geben Sie das Zählergebnis für jeden<br />
Buchstaben einzeln wie folgt auf dem Bildschirm aus.<br />
Beispielausgabe mit Häufigkeiten für jeden einzelnen Buchstaben:<br />
A: 24<br />
B: 26<br />
C: 7<br />
…<br />
Z: 4<br />
Randbedingung:<br />
Verwenden Sie zum Zählen der einzelnen Buchstaben ein ausreichend großes Feld von<br />
Zählern (Integer-Werte). Konvertieren Sie einen im Text gefundenen Großbuchstaben stets<br />
so, dass das Konvertierungsergebnis direkt als Index für den Zugriff auf den passenden Zähler<br />
verwendet werden kann.<br />
Geben Sie den vollständigen, kompilierbaren Quellcode für das Programm an.</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246539</guid><dc:creator><![CDATA[Robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 08:43:02 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 08:50:22 GMT]]></title><description><![CDATA[<p>Robc++ schrieb:</p>
<blockquote>
<p>Es müsste ja ein int Feld [24] deklariert werden.<br />
Aber was danach kommt, weiß ich nicht.</p>
</blockquote>
<p>ich würde eher auf eine std::map&lt;char, int&gt; tippen... dabei müsste man ggf. darauf achten, Groß- und Kleinbuchtsaben gleich zu behandeln, wenn das gewünscht ist.</p>
<p>Ich habe aber so die Befürchtung, dass der Aufgabensteller keine Ahnung hat und der ASCII-Code der Buchstaben in einen Array-Index umgewandelt werden soll, mit dem dann auf das vermutete int[24] zugegriffen werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246546</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 29 Aug 2012 08:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 08:54:22 GMT]]></title><description><![CDATA[<p>Robc++ schrieb:</p>
<blockquote>
<p>Es müsste ja ein int Feld [24] deklariert werden.</p>
</blockquote>
<p>Au, weia.</p>
<p>Wikipedia schrieb:</p>
<blockquote>
<p>Das moderne lateinische Alphabet enthält 26 Zeichen.</p>
</blockquote>
<blockquote>
<p>Konvertieren Sie einen im Text gefundenen Großbuchstaben stets<br />
so, dass das Konvertierungsergebnis direkt als Index für den Zugriff auf den passenden Zähler verwendet werden kann.</p>
</blockquote>
<p>Du sollst hier eine Eigenschaft der ASCII-Zeichencodierung benutzen und die Tatsache, dass Zeichen auch nur Zahlen sind. Es ist nämlich <code>'A' + 1 == 'B'</code> (beachte, dass die 1 hier die Zahl, nicht die Ziffer ist <code>'A' + '1'</code> wäre ganz was anderes), … , <code>'A' + 25 == 'Z'</code> . Entsprechend ist <code>'A' - 'A' == 0</code> und <code>'Z' - 'A' == 25</code> . Der Rest sollte klar sein.</p>
<p>Das Problem an der Aufgabe ist streng genommen, dass man ASCII nicht voraussetzen darf. Es gibt tatsächlich reale Systeme, auf denen die obige Annahme nicht gilt. Aber damit will ich dich jetzt nicht verwirren, in 99.9999% aller Fälle ist das so richtig. Die Aufgabenstellung verlangt jedenfalls, dass du es so machst. Wenn du Spaß hast, kannst du ja mal überlegen, wie man es machen könnte, wenn die Großbuchstaben im unterliegenden Zeichensatz nicht mehr hintereinander stehen, ohne dass man 26 if/switch benutzt (Das ist aber ein bisschen schwierig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246549</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 29 Aug 2012 08:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 09:07:11 GMT]]></title><description><![CDATA[<p>Ok dann muss ich also ein 26 Feld erstellen und dann jeweils prüfen</p>
<p>..<br />
if( 'A'+1==B)<br />
{<br />
counterb++;<br />
}<br />
if ('A'+2= C)<br />
{<br />
counterc++;<br />
}<br />
...</p>
<p>Könnte man auch ein counter [größe] erstellen damit ich nachher bei der Ausgabe eine forschleife benutzen kann?<br />
also würde dann bei einer if Schleife statt counterb++ Counter[1]++</p>
<p>Gibt es die möglichkeit die 26 if schleifen zu umgehen?</p>
<p>Hinweis: Bin totaler Anfänger in c++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246555</guid><dc:creator><![CDATA[Robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 09:07:11 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 09:30:11 GMT]]></title><description><![CDATA[<p>Wenn Du ein Zeichen hast, ermittelst Du erst einmal, ob Du es zählen musst:</p>
<pre><code class="language-cpp">if(zeichen &gt;= 'A' &amp;&amp; zeichen &lt;= 'Z')
</code></pre>
<p>Wenn das zutrifft, subtrahierst Du:</p>
<pre><code class="language-cpp">index = zeichen - 'A';
</code></pre>
<p>Nun hast Du in index 0 wenn Dein Zeichen 'A' war, und 25, wenn Dein Zeichen 'Z' war, oder halt irgendwas dazwischen. Mit diesem Index kannst Du jetzt auf Dein Feld zugreifen und den entsprechenden Wert inkrementieren.<br />
So hast Du am Ende in</p>
<pre><code>Feld[0]
</code></pre>
<p>die Anzahl der gefundenen 'A's usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246567</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 29 Aug 2012 09:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 10:54:34 GMT]]></title><description><![CDATA[<p>Eine Umwandlung brauch ich aber nicht von den Buchstaben oder?</p>
<p>Also das Programm weiß das die ASCII Tabelle benutzt wird (also die Zahlen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246613</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 10:54:34 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 10:58:57 GMT]]></title><description><![CDATA[<p>robc++ schrieb:</p>
<blockquote>
<p>Eine Umwandlung brauch ich aber nicht von den Buchstaben oder?</p>
</blockquote>
<p>'A' == 65. Das <em>ist</em> schon so, dafür brauchst du nichts umwandeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246616</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 29 Aug 2012 10:58:57 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 11:03:25 GMT]]></title><description><![CDATA[<p>robc++ schrieb:</p>
<blockquote>
<p>Also das Programm weiß das die ASCII Tabelle benutzt wird (also die Zahlen).</p>
</blockquote>
<p>Nein, nicht wirklich. Aber Zeichen sind immer Zahlen, du kannst immer damit rechnen und das soll hier gelernt werden. Ist die benutzte Zeichentabelle (dies wird von der Umgebung festgelegt, nicht von deinem Programm!) ASCII-artig, dann klappt das mit dem Trick, 'A' vom Buchstaben abzuziehen, um den Index zu bekommen, denn bei ASCII und Nachfolgern sind alle lateinischen Buchstaben hintereinander. Du darfst davon ausgehen, auf allen gängigen Systemen einen solchen Zeichensatz zu finden. Unschön ist halt, dass es nicht auf jedem denkbaren System läuft und nur mit lateinischen Buchstaben. Allgemein wäre daher die genannte map besser, aber das soll hier nicht gelernt werden und kommt sicherlich (viel) später im Kurs, wenn komplexe Datenstrukturen besprochen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246619</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 29 Aug 2012 11:03:25 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 11:47:30 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>robc++ schrieb:</p>
<blockquote>
<p>Eine Umwandlung brauch ich aber nicht von den Buchstaben oder?</p>
</blockquote>
<p>'A' == 65. Das <em>ist</em> schon so, dafür brauchst du nichts umwandeln.</p>
</blockquote>
<p>Das ist nicht so wichtig. Wichtig ist, dass gilt:</p>
<pre><code>'B' == 'A' + 1
'C' == 'A' + 2
</code></pre>
<p>usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246641</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 29 Aug 2012 11:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:05:35 GMT]]></title><description><![CDATA[<p>Also so sieht das bisherige Programm aus:</p>
<p>#include&lt;iostream&gt;<br />
#include&lt;fstream&gt;<br />
#include&lt;string&gt;<br />
#include&lt;cstdlib&gt;<br />
using namespace std;</p>
<p>int main ()<br />
{<br />
string quellname;<br />
ifstream Datei;<br />
char Zeichen;<br />
int index;</p>
<p>cout&lt;&lt;&quot; Bitte Quellname eingeben&quot;&lt;&lt;endl;<br />
cin&gt;&gt; quellname;</p>
<p>Datei.open(quellname.c_str());</p>
<p>if (!Datei)<br />
{<br />
cerr&lt;&lt;&quot; Kann nicht geöffnet werden&quot;&lt;&lt;endl;<br />
exit (-1)<br />
}</p>
<p>int zaehlerfed[26];</p>
<p>while (Datei.get(zeichen))<br />
{<br />
if (zeichen&gt;='A'&amp;&amp;zeichen&lt;='Z')<br />
{</p>
<p>}</p>
<p>Was genau muss den jetzt gemacht werden ich muss doch jetzt prüfen ob welcher Buchstabe das ist und dann den Zaehler erhöhen odeR?</p>
<p>if (zeichen&gt;='A'&amp;&amp;zeichen&lt;='Z')<br />
{<br />
index=zeichen-'A';<br />
if(zeichen=='A')<br />
[<br />
zaehlerfeld[1]++; /geht das???<br />
]<br />
if (zeichen=='B')<br />
[<br />
zaehlerfeld[2]++<br />
]</p>
<p>....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246650</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:15:15 GMT]]></title><description><![CDATA[<p>Sorry das Programm müsste ja dann so aussehen :</p>
<p>if (zeichen&gt;='A'&amp;&amp;zeichen&lt;='Z')<br />
{<br />
index=zeichen-'A';</p>
<p>if(index==0)<br />
[<br />
zaehlerfeld[1]++; /geht das???<br />
]<br />
if (index==2)<br />
[<br />
zaehlerfeld[2]++;<br />
]</p>
<p>if(index==3)<br />
{<br />
zahlerfeld [3]++;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246653</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:15:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:16:08 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>...</p>
<p>Nun hast Du in index 0 wenn Dein Zeichen 'A' war, und 25, wenn Dein Zeichen 'Z' war, oder halt irgendwas dazwischen. <strong>Mit diesem Index kannst Du jetzt auf Dein Feld zugreifen</strong> und den entsprechenden Wert inkrementieren.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2246654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246654</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:19:37 GMT]]></title><description><![CDATA[<p>Ich gebe dir mal eine Musterlösung, dann kannst du [c]<strong>vergleichen</strong>[/c].</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main()
{
	ifstream file(&quot;daten.txt&quot;);
	unsigned capitals[26] = {};

	for(char c; file&gt;&gt;c;)
	{
		if( c&gt;='A' &amp;&amp; c&lt;='Z' )
			++capitals[c-'A'];
	}

	for(char c='A'; c&lt;='Z'; ++c)
		cout &lt;&lt; c &lt;&lt; &quot;: &quot; &lt;&lt; capitals[c-'A'] &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2246660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246660</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:19:37 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:21:46 GMT]]></title><description><![CDATA[<p>unsigned capitals[26] = {};</p>
<p>Wieso unsigned?</p>
<p>for(char c; file&gt;&gt;c;)<br />
{<br />
if( c&gt;='A' &amp;&amp; c&lt;='Z' )<br />
++capitals[c-'A'];<br />
}</p>
<p>for(char c='A'; c&lt;='Z'; ++c)<br />
cout &lt;&lt; c &lt;&lt; &quot;: &quot; &lt;&lt; capitals[c-'A'] &lt;&lt; endl;<br />
}<br />
Kannst du den Abschnitt kurz erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246663</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:26:57 GMT]]></title><description><![CDATA[<p>Cool Danke, ich glaub ich habs verstanden</p>
<p>capital[c-'A']</p>
<p>wenn es A ist dann -&gt; 65-65 --&gt; speichert in Feld [0]</p>
<p>das is ja echt schon die Lösung.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246666</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:30:41 GMT]]></title><description><![CDATA[<p>unsigned, weil ein Zähler ja nicht kleiner als 0 werden kann. Ein Buchstabe kann ja nicht weniger oft als 0x vorkommen.</p>
<p>Du hast ein Array von 26 Elementen. Der Zugriff erfolgt dann über die Indizes 0 bis 25. 'A' hat irgendeinen Wert. 'A'-'A'=0, 'B'-'A'=1 .... 'Z'-'A'=25 Du siehst also, die Indizes passen genau, von 0 bis 25. Das ++ erhöht einfach den Zähler des entsprechenden Buchstabens. Die if erklärt sich ja von selbst (nur Großbuchstaben zählen) und das am Ende ist einfach nur eine Testausgabe.</p>
<p>Eine for Schleife besteht aus 3 Teilen:<br />
1. Laufvariable<br />
2. Bedingung<br />
3. Irgendwas, das immer nach einem Schleifendurchlauf passieren soll.<br />
--&gt; file&gt;&gt;c ließt genau 1 Zeichen aus der Datei und speicher das Zeichen in der Laufvariable c. Der Rückgabewert dieser Operation ist einfach gesagt true, wenn sie erfolgreich war, ansonsten false.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246669</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:39:00 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Informationen.</p>
<p>Kann ich den meine vorgehensweise auch anwenden also mit dem<br />
Datei.open(quellname.c_str())<br />
und die Prüfung ob die Datei geöffnet werden kann?</p>
<p>Wie bist du den so schnell auf die Lösung gekommen?<br />
wie ist deine vorgehensweise bei c++?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246670</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 12:58:37 GMT]]></title><description><![CDATA[<p>Ich werf' mal <code>&lt;cctype&gt;</code> in die Suppe ...</p>
<p>out schrieb:</p>
<blockquote>
<pre><code class="language-cpp">[...]
</code></pre>
</blockquote>
<p>=&gt;</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;cctype&gt;

using namespace std;

int main()
{
	ifstream file(&quot;daten.txt&quot;);
	unsigned counter[ 'Z' - 'A' ] = {};
	int ch = 0;

	while( ch = file.get(), file.good() ) {

		if( isalpha( ch ) ) {

			++counter[ toupper( ch ) - 'A' ];
		}
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2246678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246678</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 29 Aug 2012 12:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 13:16:58 GMT]]></title><description><![CDATA[<p>#include&lt;iostream&gt;<br />
#include&lt;fstream&gt;<br />
#include&lt;string&gt;<br />
#include&lt;cstdlib&gt;<br />
using namespace std;</p>
<p>int main ()<br />
{<br />
string quellname;<br />
ifstream Datei;<br />
char Zeichen;<br />
unsigned Feld[26]= {};</p>
<p>cout&lt;&lt;&quot; Bitte Quellname eingeben&quot;&lt;&lt;endl;<br />
cin&gt;&gt; quellname;</p>
<p>Datei.open(quellname.c_str());</p>
<p>if (!Datei)<br />
{<br />
cerr&lt;&lt;&quot; Kann nicht geöffnet werden&quot;&lt;&lt;endl;<br />
exit (-1)<br />
}</p>
<p>while (Datei.get(zeichen))<br />
{</p>
<p>if (zeichen&gt;='A'&amp;&amp;zeichen&lt;='Z')<br />
{<br />
++Feld[zeichen-'A'];<br />
}</p>
<p>for(char=zeichen='A'; zeichen&lt;='Z'; ++zeichen)<br />
{<br />
cout&lt;&lt;zeichen&lt;&lt;&quot;:&quot;&lt;&lt;Feld[zeichen-'A']&lt;&lt; endl;<br />
}<br />
}<br />
}</p>
<p>Ist der Quellcode so ok? oder habe ich noch fehler???</p>
<p>wofür dient eig : system(&quot;dir&quot;);????????????</p>
<p>Wie kann ich laut meinen Quellcode eig diete abfrage nach der quelldatei umgehen?</p>
<p>kann ich daten.txt so einbinden? ich mein der benutzer muss das ja eingeben.</p>
<p>DAnke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246685</guid><dc:creator><![CDATA[robc++]]></dc:creator><pubDate>Wed, 29 Aug 2012 13:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 13:21:03 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...
	while( ch = file.get(), file.good() ) {
	
		if( isalpha( ch ) ) {
		
			++counter[ toupper( ch ) - 'A' ];
		}
	}
}
</code></pre>
</blockquote>
<p>Vielleicht solltest Du Dir die Aufgabenstellung genauer ansehen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246687</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 29 Aug 2012 13:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 13:57:44 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>Vielleicht solltest Du Dir die Aufgabenstellung genauer ansehen ...</p>
</blockquote>
<p>Hoppala <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>
<pre><code class="language-cpp">while( ch = file.get(), file.good() ) {

	if( isupper( ch ) ) {

		++counter[ ch - 'A' ];
	}
}
</code></pre>
<p>Belli schrieb:</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>robc++ schrieb:</p>
<blockquote>
<p>Eine Umwandlung brauch ich aber nicht von den Buchstaben oder?</p>
</blockquote>
<p>'A' == 65. Das <em>ist</em> schon so, dafür brauchst du nichts umwandeln.</p>
</blockquote>
<p>Das ist nicht so wichtig. [...]</p>
</blockquote>
<p>Ich wollt nur klarstellen, daß ein &quot;Buchstabe&quot; eine Zahl <em>ist</em>.</p>
<p>Mensch, Du hast mich aber heute am Kieker ... <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>// edit: tagsoup detected.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246701</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 29 Aug 2012 13:57:44 GMT</pubDate></item><item><title><![CDATA[Reply to Dateiverarbeitung on Wed, 29 Aug 2012 14:33:32 GMT]]></title><description><![CDATA[<p>robc++ schrieb:</p>
<blockquote>
<p>Kann ich den meine vorgehensweise auch anwenden also mit dem<br />
Datei.open(quellname.c_str())<br />
und die Prüfung ob die Datei geöffnet werden kann?</p>
</blockquote>
<p>Natürlich, solltest du auch. Für das eigentliche Problem habe ich es einfach mal weggelassen.</p>
<p>robc++ schrieb:</p>
<blockquote>
<p>Wie bist du den so schnell auf die Lösung gekommen?<br />
wie ist deine vorgehensweise bei c++?</p>
</blockquote>
<p>Hmm, keine Ahnung, ich bin auch nur ein Anfänger hab auch erst 1. c++-Buch gelesen, aber ich habe halt auch schon viele andere Dinge gemacht, im Bereich Informatik. Dann hats so eine Aufgabe eben sofort... Das kommt einfach mit den Jahren. <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>Ob die Semantik des Quellcodes stimmt, siehst du, wenn das herauskommt, was du wolltest. Die Prüfung der Syntax nimmt dir ja schon der Compiler ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246725</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 29 Aug 2012 14:33:32 GMT</pubDate></item></channel></rss>