<?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[Effektiv Input parsen?]]></title><description><![CDATA[<p>Hi,</p>
<p>ich stehe immer wieder vor der Aufgabe Benutzereingaben zu parsen, also z.B:<br />
Ein Programm hat vordefinierte Funktionen, die vom Benutzer eingegeben werden können, um die gewünschte Aktion auszuführen.</p>
<p>Nachdem diese Problemstellung sehr häufig vorkommt, wollte ich einmal die Spezialisten fragen, wie man das am besten/effizientesten löst? Am meisten würde mich momentan eine Lösung in C++ interessieren.</p>
<p>Bisher habe ich meist den Eingabestring mittels StringTokenizer in die einzelnen Token zerlegt und anschließend mit ewig langen if - else if - else if - usw. mit den möglichen Befehlen verglichen. Aber es muss doch eine Möglichkeit geben diese if-else if-Blöcke zu umgehen?!</p>
<p>Wie löst Ihr solche Aufgaben?</p>
<p>Ich hoffe, ich konnte mich halbwegs verständlich ausdrücken;).</p>
<p>mfg,<br />
soad</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176665/effektiv-input-parsen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 14:35:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176665.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Mar 2007 13:39:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 13:39:26 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich stehe immer wieder vor der Aufgabe Benutzereingaben zu parsen, also z.B:<br />
Ein Programm hat vordefinierte Funktionen, die vom Benutzer eingegeben werden können, um die gewünschte Aktion auszuführen.</p>
<p>Nachdem diese Problemstellung sehr häufig vorkommt, wollte ich einmal die Spezialisten fragen, wie man das am besten/effizientesten löst? Am meisten würde mich momentan eine Lösung in C++ interessieren.</p>
<p>Bisher habe ich meist den Eingabestring mittels StringTokenizer in die einzelnen Token zerlegt und anschließend mit ewig langen if - else if - else if - usw. mit den möglichen Befehlen verglichen. Aber es muss doch eine Möglichkeit geben diese if-else if-Blöcke zu umgehen?!</p>
<p>Wie löst Ihr solche Aufgaben?</p>
<p>Ich hoffe, ich konnte mich halbwegs verständlich ausdrücken;).</p>
<p>mfg,<br />
soad</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251149</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Fri, 23 Mar 2007 13:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 14:01:56 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-139383.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-139383.html</a><br />
und<br />
<a href="http://spirit.sourceforge.net/" rel="nofollow">http://spirit.sourceforge.net/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251161</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Fri, 23 Mar 2007 14:01:56 GMT</pubDate></item><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 14:24:11 GMT]]></title><description><![CDATA[<p>Um die Benutzereingaben zu verarbeiten oder meine Konfigurationsdateien zu parsen habe ich einen kleinen, unvollständigen und ineffizienten FORTH Interpreter geschrieben, da FORTH IMHO die am einfachsten zu interpretierende Sprache ist. Wobei ich um ewig lange if/else auch nicht herum kam.</p>
<p>boost::spirit ist natürlich auch sehr genial.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251178</guid><dc:creator><![CDATA[mastercpp]]></dc:creator><pubDate>Fri, 23 Mar 2007 14:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 14:25:10 GMT]]></title><description><![CDATA[<p>am einfachsten ist, man macht eine tabelle mit strings und function pointern.<br />
und dann, wenn ein string gefunden wurde, einfach die tabelle durchrattern und die funktion aufrufen.<br />
beispiel:</p>
<pre><code>void f (void)
{
   printf (&quot;hallo\n&quot;);
}

void g (void)
{
   printf (&quot;welt?\n&quot;);
}

struct tablestruct
{
  char *command_name;
  void (*function)(void);
} 
table[] =
{
   {&quot;hello&quot;, f},
   {&quot;lala&quot;, g},
   {0, 0},
};

void call_function (char *name)
{
   struct tablestruct *t = table;
   while (t-&gt;command_name)
   {
      if (strcmp (t-&gt;command_name, name) == 0)
      {
         t-&gt;function();
         return;
      }
      t++;
   }
}

void main (void)
{
   call_function (&quot;lala&quot;);
}
</code></pre>
<p>ist zwar kein astreines c++, aber dürfte leicht anzupassen sein...<br />
<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/1251180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251180</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Fri, 23 Mar 2007 14:25:10 GMT</pubDate></item><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 14:32:35 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15258">@vista</a><br />
in C++ würde man wohl eher std::map oder std::tr1::hash nehmen (void main *hust*)</p>
<p>mastercpp schrieb:</p>
<blockquote>
<p>Um die Benutzereingaben zu verarbeiten oder meine Konfigurationsdateien zu parsen habe ich einen kleinen, unvollständigen und ineffizienten FORTH Interpreter geschrieben, da FORTH IMHO die am einfachsten zu interpretierende Sprache ist. Wobei ich um ewig lange if/else auch nicht herum kam.</p>
</blockquote>
<p><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="👍"
    /> yeah FORTH!</p>
<p>Wenn man eine Script-Sprache haben will, kann man aber auch zu fertigen Lösungen greifen:</p>
<p>Boost::Python<br />
Lua<br />
Swig<br />
etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251185</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Fri, 23 Mar 2007 14:32:35 GMT</pubDate></item><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 14:38:11 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15258">@vista</a><br />
...(void main *hust*)</p>
</blockquote>
<p>oh, shit, tut mir leid....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251190</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Fri, 23 Mar 2007 14:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to Effektiv Input parsen? on Fri, 23 Mar 2007 16:49:39 GMT]]></title><description><![CDATA[<p>Danke für die zahlreichen Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251269</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Fri, 23 Mar 2007 16:49:39 GMT</pubDate></item></channel></rss>