<?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[Programm zum zählen bestimmter Worte- wo ist der Denkfehler?]]></title><description><![CDATA[<p>Hallo.<br />
Ich versuche nun ungerfähr schon seit einer Stunde, zu verstehen, was mit diesem simplen Programm nicht stimmt.<br />
Ist ne Aufgabe aus einem Buch.<br />
Und zwar soll es in einer Textdatei nach einem bestimmten Wort suchen und dann ausgeben, wieviele in der gesamten Datei davon vorhanden sind.</p>
<p>Mein code sieht folgendermaßen aus:</p>
<blockquote>
<p>#include &lt;string&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
using namespace std;</p>
<p>int main() {</p>
<p>ifstream in (&quot;bla.txt&quot;);<br />
string s= &quot;sdfg&quot;;<br />
string p;<br />
int a=0;</p>
<p>while (getline(in, p, ' ')){<br />
if (p==s){a++;}<br />
}</p>
<p>cout&lt;&lt;a;<br />
cin.get();<br />
}</p>
</blockquote>
<p>die datei bla so:</p>
<blockquote>
<p>aa aa aa sdfg<br />
sdfsd dd</p>
</blockquote>
<p>Jetzt legt das Programm ein komisches Verhalten an den Tag: Wenn ich nach &quot;aa&quot; suche, findet es die korrekte Zahl 3. Bei dd findet es auch 1. Aber wenn ich sdfg eingebe findet es nichts, ebenso für sdfsd (ja, ich weiß, nette wörter).<br />
Ich versteh absolut nicht, warum.<br />
Der Logik nach gibt es einen String, der mit dem gesuchten Wort belegt ist, einen, in den später das jeweilige wort gelegt wird und eine int, die die wörter zählt.<br />
In der schleife wird jetzt die datei, die bei ifstream in eingelesen wurde genommen und alles bis zum ersten leerzeichen in den String p gelegt.<br />
Im folgenden wird p mit s abgeglichen, wenn p==s ist, dann wird a um eins größer. Wenn nicht, geht die schleife weiter, solange, bis getline keine strings mehr einlesen kann.<br />
Wo liegt denn jetzt mein Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249111/programm-zum-zählen-bestimmter-worte-wo-ist-der-denkfehler</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 16:29:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249111.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Sep 2009 19:50:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm zum zählen bestimmter Worte- wo ist der Denkfehler? on Wed, 02 Sep 2009 19:50:34 GMT]]></title><description><![CDATA[<p>Hallo.<br />
Ich versuche nun ungerfähr schon seit einer Stunde, zu verstehen, was mit diesem simplen Programm nicht stimmt.<br />
Ist ne Aufgabe aus einem Buch.<br />
Und zwar soll es in einer Textdatei nach einem bestimmten Wort suchen und dann ausgeben, wieviele in der gesamten Datei davon vorhanden sind.</p>
<p>Mein code sieht folgendermaßen aus:</p>
<blockquote>
<p>#include &lt;string&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
using namespace std;</p>
<p>int main() {</p>
<p>ifstream in (&quot;bla.txt&quot;);<br />
string s= &quot;sdfg&quot;;<br />
string p;<br />
int a=0;</p>
<p>while (getline(in, p, ' ')){<br />
if (p==s){a++;}<br />
}</p>
<p>cout&lt;&lt;a;<br />
cin.get();<br />
}</p>
</blockquote>
<p>die datei bla so:</p>
<blockquote>
<p>aa aa aa sdfg<br />
sdfsd dd</p>
</blockquote>
<p>Jetzt legt das Programm ein komisches Verhalten an den Tag: Wenn ich nach &quot;aa&quot; suche, findet es die korrekte Zahl 3. Bei dd findet es auch 1. Aber wenn ich sdfg eingebe findet es nichts, ebenso für sdfsd (ja, ich weiß, nette wörter).<br />
Ich versteh absolut nicht, warum.<br />
Der Logik nach gibt es einen String, der mit dem gesuchten Wort belegt ist, einen, in den später das jeweilige wort gelegt wird und eine int, die die wörter zählt.<br />
In der schleife wird jetzt die datei, die bei ifstream in eingelesen wurde genommen und alles bis zum ersten leerzeichen in den String p gelegt.<br />
Im folgenden wird p mit s abgeglichen, wenn p==s ist, dann wird a um eins größer. Wenn nicht, geht die schleife weiter, solange, bis getline keine strings mehr einlesen kann.<br />
Wo liegt denn jetzt mein Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1771134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1771134</guid><dc:creator><![CDATA[therisenevil]]></dc:creator><pubDate>Wed, 02 Sep 2009 19:50:34 GMT</pubDate></item><item><title><![CDATA[Reply to Programm zum zählen bestimmter Worte- wo ist der Denkfehler? on Wed, 02 Sep 2009 19:54:02 GMT]]></title><description><![CDATA[<p>Liegt wahrscheinlich am Delimiter. Pack die 'Wörter' in deiner Textdatei mal in eine einzige Zeile, dann weißt du was ich meine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1771139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1771139</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 02 Sep 2009 19:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Programm zum zählen bestimmter Worte- wo ist der Denkfehler? on Wed, 02 Sep 2009 19:55:32 GMT]]></title><description><![CDATA[<p>Ganz grob ins blaue: Du benutzt als Delim-char ein Leerzeichen. Aber hinter deinem sdfg is nur ein Zeilenumbruch. Mach dahinter mal ein leerzeichen und es sollte klappten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1771140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1771140</guid><dc:creator><![CDATA[Cox]]></dc:creator><pubDate>Wed, 02 Sep 2009 19:55:32 GMT</pubDate></item><item><title><![CDATA[Reply to Programm zum zählen bestimmter Worte- wo ist der Denkfehler? on Wed, 02 Sep 2009 20:03:33 GMT]]></title><description><![CDATA[<p>***gelöscht***<br />
edit: Tut doch gar nicht not, gegenüber Neulingen unhöflich zu werden. Bitte vermehrt die Profis beleidigen und im Gegenzug den Neulingen konstruktiv helfen.<br />
edit2: Ich sehe, daß Du vorher konstruktiv geholfen hast und freue mich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1771142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1771142</guid><dc:creator><![CDATA[Cox]]></dc:creator><pubDate>Wed, 02 Sep 2009 20:03:33 GMT</pubDate></item><item><title><![CDATA[Reply to Programm zum zählen bestimmter Worte- wo ist der Denkfehler? on Wed, 02 Sep 2009 20:03:42 GMT]]></title><description><![CDATA[<p>Hmm, ok, wenn alles in einer zeile liegt, funktionert es. Ich verstehe aber nicht so recht warum, der delimiter ist bei mir doch ' ' und nicht mehr '\n'.<br />
Bzw gibt es eine Möglichkeit, das mit getline zu lösen oder muss ich das anders machen? (aber bitte keine komplette lösung angeben)<br />
EDIT: 1. bin jetzt von selbst drauf gekommen 2. hab die zweiten zwei posts nicht gelesen, war am tippen währenddessen. danke, jetzt versteh ich das problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1771144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1771144</guid><dc:creator><![CDATA[therisenevil]]></dc:creator><pubDate>Wed, 02 Sep 2009 20:03:42 GMT</pubDate></item></channel></rss>