<?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[Eingabe verwalten]]></title><description><![CDATA[<p>Hi,<br />
ich weiss nicht genau wie man es am besten macht, auf jeden Fall wollte ich mehrere (ca. 50) Befehle in der Console zulassen und wollte fragen, wie ich die am besten verwalte, da die switch case anweisung meines wissens nur mit zahlen geht und eine if-Bedingung ich einfach nur schlecht finde weiss ich nicht genau wie ich die Befehle verwalten soll.</p>
<p>Habe zwar schon mal ein bisschen gesucht, aber wonach ich genau suchen sollte wusste ich auch nicht... von daher war ich bis jetzt eher erfolglos.</p>
<p>Hoffe mir kann jemand helfen.</p>
<p>Schon mal Danke im Voraus.</p>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203102/eingabe-verwalten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 12:11:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203102.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Jan 2008 17:58:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eingabe verwalten on Fri, 18 Jan 2008 17:58:39 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich weiss nicht genau wie man es am besten macht, auf jeden Fall wollte ich mehrere (ca. 50) Befehle in der Console zulassen und wollte fragen, wie ich die am besten verwalte, da die switch case anweisung meines wissens nur mit zahlen geht und eine if-Bedingung ich einfach nur schlecht finde weiss ich nicht genau wie ich die Befehle verwalten soll.</p>
<p>Habe zwar schon mal ein bisschen gesucht, aber wonach ich genau suchen sollte wusste ich auch nicht... von daher war ich bis jetzt eher erfolglos.</p>
<p>Hoffe mir kann jemand helfen.</p>
<p>Schon mal Danke im Voraus.</p>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439177</guid><dc:creator><![CDATA[Coda*linux.PrayLoad]]></dc:creator><pubDate>Fri, 18 Jan 2008 17:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe verwalten on Tue, 22 Jan 2008 17:43:29 GMT]]></title><description><![CDATA[<p>Halbwegs elegant lässt sich das durch eine map lösen:</p>
<pre><code class="language-cpp">void DoThis( const vector&lt;string&gt;&amp; params )
{
   // ...
}

void DoThat( const vector&lt;string&gt;&amp; params )
{
   // ...
}

void HandleInput()
{
    typedef void (*NotifyFunc)( const vector&lt;string&gt;&amp; );
    static map&lt;string,NotifyFunc&gt; funcs;
    if ( funcs.size() == 0 ) // Wenn die map noch nicht initialisiert ist
    {
        funcs[&quot;DoThis&quot;] = &amp;DoThis;
        funcs[&quot;DoThat&quot;] = &amp;DoThat;
    }

    string name
    vector&lt;string&gt; params
    // Funktionsnamen und Parameter einlesen

    if ( ! funcs.find( name ) )
        dann fehler

    funcs[name]( params );
}
</code></pre>
<p>Oder so <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>
<p>edit: Ups, was verbessert..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439183</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 22 Jan 2008 17:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe verwalten on Fri, 18 Jan 2008 18:15:39 GMT]]></title><description><![CDATA[<p>gleich richtige Handler Klassen statt nur Funktionen verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439189</guid><dc:creator><![CDATA[oder]]></dc:creator><pubDate>Fri, 18 Jan 2008 18:15:39 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe verwalten on Tue, 22 Jan 2008 14:35:30 GMT]]></title><description><![CDATA[<p>Habe mich mal son bisschen in maps eingelesen, stosse jedoch immer noch auf ein paar Probleme und hoffe man kann mir dabei helfen.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;map&gt;
using namespace std;

void test() {
   cout &lt;&lt; &quot;lol&quot;;
   ....
}

int main()
{
char eingabe[25];
  map&lt;const char*, ???&gt; code;
  code[&quot;help&quot;] = test;

cin &gt;&gt; eingabe;

map&lt;const char*, ???&gt;::iterator iter = code.find(eingabe);

if(iter != code.end())
code[eingabe];

else
cout &lt;&lt; &quot;Unbekannter Befehl.&quot;;
}
</code></pre>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441333</guid><dc:creator><![CDATA[Coda*linux.PrayLoad]]></dc:creator><pubDate>Tue, 22 Jan 2008 14:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe verwalten on Tue, 22 Jan 2008 14:42:39 GMT]]></title><description><![CDATA[<p>Erstmal solltest du statt &quot;char*&quot; lieber &quot;std::string&quot; verwenden - der Standardvergleich von char-Zeigern macht bestimmt nicht das, was du erwartest (der vergleicht die Adressen - und dein lokales Array &quot;eingabe&quot; ist IMMER ungleich dem String-Literal &quot;test&quot;).</p>
<p>Zweitens: Funktionszeiger sind das Zauberwort:</p>
<pre><code class="language-cpp">typedef void (*pf)();

void test(){...}

...

map&lt;string,pf&gt; code;
...
if(iter!=code.end())
  (*iter)();//oder code[eingabe](); - das leere Klammerpaar ist notwendig
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1441341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441341</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 22 Jan 2008 14:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe verwalten on Tue, 22 Jan 2008 18:00:46 GMT]]></title><description><![CDATA[<p>Ah... hat super funktioniert, danke</p>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441501</guid><dc:creator><![CDATA[Coda*linux.PrayLoad]]></dc:creator><pubDate>Tue, 22 Jan 2008 18:00:46 GMT</pubDate></item></channel></rss>