<?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[Wortzähl - Funktion]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>also ich bin ein bisschen beim Üben und hab mir gedacht, schreib einmal ein Programm das eine Textdatei bekommt und diese analysiert.</p>
<p>aber eine Funktion funktioniert irgendwie nicht richtig und ich finde meinen Fehler nicht, hoffe ihr könnt mir helfen.</p>
<p>Also hier mein schöner Code:</p>
<pre><code>int woerterzaehlen()
{
  int i = 0;
  int wortzahl = 0;
  string buffer;
  string text;
  string datei;
  ifstream file;

  cout &lt;&lt; &quot;Welche Datei soll eingelesen werden? &quot;;
  cin &gt;&gt; datei;

  cout &lt;&lt; endl;

  file.open(datei.c_str());

  if(file)
  {
    while(!file.eof())
    {
      getline(file, buffer);
      text += buffer + &quot;\n&quot;;
    }

    file.close()
  }
  else
  {
    cout &lt;&lt; &quot;Datei nicht vorhanden&quot; &lt;&lt; endl;
  }

  for(i = 1; i &lt;= text.length(); i++)
  {
    if((text[i] == ' ') &amp;&amp; (text[i - 1] != ' '))
    {
      wortzahl++;
    }
  }
  wortzahl++;

  cout &lt;&lt; &quot;Die Datei enthält: &quot; &lt;&lt; wortzahl &lt;&lt; &quot; Wörter!&quot; &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>so und als testdatei, hab ich irgendwas zusammengeschrieben: die datei enthält 1216 wörter laut word aber mein programm gibt nur 1016 wörter an!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323712/wortzähl-funktion</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 20:04:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323712.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Feb 2014 09:46:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 09:46:25 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>also ich bin ein bisschen beim Üben und hab mir gedacht, schreib einmal ein Programm das eine Textdatei bekommt und diese analysiert.</p>
<p>aber eine Funktion funktioniert irgendwie nicht richtig und ich finde meinen Fehler nicht, hoffe ihr könnt mir helfen.</p>
<p>Also hier mein schöner Code:</p>
<pre><code>int woerterzaehlen()
{
  int i = 0;
  int wortzahl = 0;
  string buffer;
  string text;
  string datei;
  ifstream file;

  cout &lt;&lt; &quot;Welche Datei soll eingelesen werden? &quot;;
  cin &gt;&gt; datei;

  cout &lt;&lt; endl;

  file.open(datei.c_str());

  if(file)
  {
    while(!file.eof())
    {
      getline(file, buffer);
      text += buffer + &quot;\n&quot;;
    }

    file.close()
  }
  else
  {
    cout &lt;&lt; &quot;Datei nicht vorhanden&quot; &lt;&lt; endl;
  }

  for(i = 1; i &lt;= text.length(); i++)
  {
    if((text[i] == ' ') &amp;&amp; (text[i - 1] != ' '))
    {
      wortzahl++;
    }
  }
  wortzahl++;

  cout &lt;&lt; &quot;Die Datei enthält: &quot; &lt;&lt; wortzahl &lt;&lt; &quot; Wörter!&quot; &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>so und als testdatei, hab ich irgendwas zusammengeschrieben: die datei enthält 1216 wörter laut word aber mein programm gibt nur 1016 wörter an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382765</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Feb 2014 09:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 09:48:49 GMT]]></title><description><![CDATA[<p>Heinzi1991 schrieb:</p>
<blockquote>
<p>so und als testdatei, hab ich irgendwas zusammengeschrieben: die datei enthält 1216 wörter laut word aber mein programm gibt nur 1016 wörter an!</p>
</blockquote>
<p>Hast du Satzzeichen in der Datei?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382767</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 12 Feb 2014 09:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 09:51:14 GMT]]></title><description><![CDATA[<p>ja satzzeichen sind vorhanden, like !, ?, : und so weiter!<br />
kann dies stören?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382768</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Feb 2014 09:51:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 09:52:14 GMT]]></title><description><![CDATA[<p>Deine Testmenge ist zu groß. Erstelle eine Datei mit einem Satz und zähle händisch - dann siehst du auch schnell wo die Fehler sind, alls dir alle gefunden Worte ausgeben und vergleiche mit dem was du händisch gezählt hast.</p>
<p>Einfach überschaubare Datenmengen verwenden, dann ist die Sachen viel viel viel einfacher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382770</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 12 Feb 2014 09:52:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 09:54:33 GMT]]></title><description><![CDATA[<p>Was ist denn am Ende von Zeilen?</p>
<p>Du liest die Datei zeilenweise ein und konkatenierst sie mit einem Zeilenumbruch (so weit so gut). Beim Zählen beachtest du aber nur Leerzeichen.</p>
<p>Guck mal <a href="http://www.cplusplus.com/reference/cctype/isspace/?kw=isspace" rel="nofollow">hier</a>.<br />
Damit kannst du sowas machen:</p>
<pre><code>for(std::size_t i = 1; i &lt; text.size(); ++i)
    if ( std::isspace(text[i]) &amp;&amp; !std::isspace(text[i-1])
         wortzahl++;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2382773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382773</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 12 Feb 2014 09:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 10:05:30 GMT]]></title><description><![CDATA[<p>danke an Skym0sh0 mit deiner funktion hat es perfekt geklappt; die verschwundenen 200 wörter sind aufgetaucht! danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382776</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Feb 2014 10:05:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 10:12:06 GMT]]></title><description><![CDATA[<p>Du musst letztendlich definieren was als Teil eines Wortes zählt, Buchstaben und Zeichen wie &quot;êöäüîß&quot; usw. musst du auch beachten. Alle anderen Zeichen z.b. &quot;$/()[}]}{=,.:;-_&quot; usw. sind Trennzeichen. Da es mehr Trennzeichen gibt würde ich nur die Zeichen die zu einem Wort gehören prüfen und nicht andersrum. Gehen tut aber beides.</p>
<blockquote>
<p>danke an Skym0sh0 mit deiner funktion hat es perfekt geklappt; die verschwundenen 200 wörter sind aufgetaucht! danke!</p>
</blockquote>
<p>Höchst unwahrscheinlich, es sei denn du hast keinen Text mit Satzzeichen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382777</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Wed, 12 Feb 2014 10:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 10:14:42 GMT]]></title><description><![CDATA[<p>DarkShadow44 schrieb:</p>
<blockquote>
<p>Höchst unwahrscheinlich, es sei denn du hast keinen Text mit Satzzeichen...</p>
</blockquote>
<p>doch, das geht. Das Leerzeichen kommt nämlich *nach* dem Satzzeichen... solange er die Wörter nur zählen und nicht weiter auswerten will, funktioniert das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382779</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 12 Feb 2014 10:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 10:16:48 GMT]]></title><description><![CDATA[<p>DarkShadow44 schrieb:</p>
<blockquote>
<p>Höchst unwahrscheinlich, es sei denn du hast keinen Text mit Satzzeichen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Wo liegt das Problem? Solange die Satzzeichen nicht durch ein Leerzeichen auf beiden Seiten von der Wörtern abgeschnitten werden, ist es dem Algorithmus egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382780</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 12 Feb 2014 10:16:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 10:23:05 GMT]]></title><description><![CDATA[<p>Die ursprüngliche Version hätte funktioniert, wenn Du statt '\n' ein ' ' als Zeilentrenner eingefügt hättest.<br />
So aber hast Du '\n' als Zeilentrenner - und damit auch als Worttrenner zwischen dem letzten Wort einer Zeile und dem ersten der Folgezeile - gesucht hast Du aber nur nach ' ' als Worttrenner - deshalb findest Du pro Zeile ein Wort weniger.<br />
Die isspace - Funktion, die Skym0sh0 vorschlägt, erkennt dagegen mehrere verschiedene Zeichen als Trennzeichen und funktioniert deshalb in beiden Fällen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382781</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 12 Feb 2014 10:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to Wortzähl - Funktion on Wed, 12 Feb 2014 10:23:11 GMT]]></title><description><![CDATA[<p>Klar bei simplen Texten mit perfekter Struktur geht das. Aber wenn man alle Texte abdecken will nicht mehr:<br />
-Text mit ein/zwei/drei Optionen<br />
-Oder wenn der Text(kommt durchaus vor)schlecht formatiert ist<br />
-Doppel-Namen<br />
-Programmiersprachen: &quot;testFunc(Test::k)&quot;</p>
<p>Klar es sind eher seltene Fälle, kommt halt drauf an wie perfekt mans lösen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382782</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Wed, 12 Feb 2014 10:23:11 GMT</pubDate></item></channel></rss>