<?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[Text Console]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wie es oben bereits steht habe ich vor eine eigene Text Konsole (keine eigene shell, eigene Konsole innerhalb der shell) entwerfen, die Vorgänge sind klar:</p>
<p>1. Zur Eingabe auffordern.<br />
2. Text in Form von String entnehmen.<br />
3. Text nach Befehlen und deren flags untersuchen.<br />
4. Nach Erkennung eines Befehls etwas ausführen und die flags (Parameter) berücksichtigen.</p>
<p>Ich kann mir den Algorithmus aber leider nicht wirklich vorstellen, wie die Konsole dann z.b. einen Befehl aus dem kompletten String erkennt, dann überprüft ob dieser Befehl Parameter mit sich bringt (diese sollten einfach ein oder mehrere Leerzeichen weiter vom Befehl selbst entfernt sein)<br />
und überprüft ob diese stimmen können...</p>
<p>Wäre für hilfreiche Antworten sehr dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296738/text-console</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 20:06:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296738.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Dec 2011 14:23:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 14:23:08 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wie es oben bereits steht habe ich vor eine eigene Text Konsole (keine eigene shell, eigene Konsole innerhalb der shell) entwerfen, die Vorgänge sind klar:</p>
<p>1. Zur Eingabe auffordern.<br />
2. Text in Form von String entnehmen.<br />
3. Text nach Befehlen und deren flags untersuchen.<br />
4. Nach Erkennung eines Befehls etwas ausführen und die flags (Parameter) berücksichtigen.</p>
<p>Ich kann mir den Algorithmus aber leider nicht wirklich vorstellen, wie die Konsole dann z.b. einen Befehl aus dem kompletten String erkennt, dann überprüft ob dieser Befehl Parameter mit sich bringt (diese sollten einfach ein oder mehrere Leerzeichen weiter vom Befehl selbst entfernt sein)<br />
und überprüft ob diese stimmen können...</p>
<p>Wäre für hilfreiche Antworten sehr dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155729</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Sun, 11 Dec 2011 14:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 14:29:24 GMT]]></title><description><![CDATA[<p>Normalerweise konstruiert man das übrigens so, dass die Befehle ihre Kommandozeile verarbeiten und die Shell reicht sie nur durch. Wenn es dir da drum geht, dann guck dir mal die getopt-Bibliothek an, die das für dich erledigt (leider sehr C-ig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ).</p>
<p>Ansonsten: Was genau ist dein Problem? Einlesen kannst du doch sicher und dann zerlegst du einfach die Zeile in Tokens. Der erste Token ist de Befehl, alles was danach kommt, sind die Parameter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155732</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 11 Dec 2011 14:29:24 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 14:35:22 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ansonsten: Was genau ist dein Problem?</p>
</blockquote>
<p>Das wohl größte Problem stellt für mich die Zerlegung eines kompletten Kommando-strings in einen Befehls-String und beliebig vielen flag-Strings dar, denn soetwas habe ich eigentlich noch nie gemacht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155736</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Sun, 11 Dec 2011 14:35:22 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 15:13:48 GMT]]></title><description><![CDATA[<p>boost bietet da was Nettes: <a href="http://www.boost.org/doc/libs/1_48_0/doc/html/program_options.html" rel="nofollow">http://www.boost.org/doc/libs/1_48_0/doc/html/program_options.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155748</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 11 Dec 2011 15:13:48 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 15:20:49 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>boost bietet da was Nettes: <a href="http://www.boost.org/doc/libs/1_48_0/doc/html/program_options.html" rel="nofollow">http://www.boost.org/doc/libs/1_48_0/doc/html/program_options.html</a></p>
</blockquote>
<p>Ich bin nicht so der Fan von Fremdbibliotheken, sollte eher was C++ natives sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155753</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Sun, 11 Dec 2011 15:20:49 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 15:35:26 GMT]]></title><description><![CDATA[<p>Was meinst du mit &quot;etwas C++ nativem&quot;? Boost ist nach der Standardlib <strong>die</strong> C++-Bibliothek. Aus ihr kommen auch die meisten Neuerungen der Standardlib.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155760</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 11 Dec 2011 15:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 15:42:20 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Was meinst du mit &quot;etwas C++ nativem&quot;? Boost ist nach der Standardlib <strong>die</strong> C++-Bibliothek. Aus ihr kommen auch die meisten Neuerungen der Standardlib.</p>
</blockquote>
<p>Ok das hätte ich nicht gewusst, ist es die native Erweiterung der Standardbibliothek oder wie soll ich das verstehen?</p>
<p>Muss es nachinstalliert werden? (wenn ja dann ist es bereits eine schlechte Wahl)</p>
<p>Was macht boost aus?</p>
<p>Ich höre ehrlich gesagt das erste Mal davon...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155765</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Sun, 11 Dec 2011 15:42:20 GMT</pubDate></item><item><title><![CDATA[Reply to Text Console on Sun, 11 Dec 2011 16:52:39 GMT]]></title><description><![CDATA[<p>RussianTux schrieb:</p>
<blockquote>
<p>Ok das hätte ich nicht gewusst, ist es die native Erweiterung der Standardbibliothek oder wie soll ich das verstehen?</p>
</blockquote>
<p>Was verstehst du unter &quot;native&quot;? Es ist eine weit verbreitete Bibliothek, welche zusammen mit C++ verwendet wird. Wenn du ein Android Handy hast, dann kannst du z.B. mal unter Lizenzen suchen gehen, sogar dort findest du die Boost Bibliothek <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>RussianTux schrieb:</p>
<blockquote>
<p>Muss es nachinstalliert werden? (wenn ja dann ist es bereits eine schlechte Wahl)</p>
</blockquote>
<p>Klar, wie alle Bibliotheken. Du musst auch die Standardbibliothek auf dem Zielsystem installieren. Ausser du linkst gegen alle Bibliotheken statisch, was afaik auch mit der Boost Bibliothek gehen würde. Aber das macht eigentlich niemand.</p>
<p>RussianTux schrieb:</p>
<blockquote>
<p>Was macht boost aus?</p>
</blockquote>
<p>Zahlreiche hilfreiche zusätzliche grundsätzliche Funktionalitäten für C++. Schau dir einfach mal das Angebot durch:<br />
<a href="http://www.boost.org/libs/libraries.htm" rel="nofollow">http://www.boost.org/libs/libraries.htm</a></p>
<p>RussianTux schrieb:</p>
<blockquote>
<p>Ich höre ehrlich gesagt das erste Mal davon...</p>
</blockquote>
<p>Dann hast du wahrscheinlich noch nicht viel mit C++ zu tun gehabt <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>Aber du kannst das gerne auch auf eine einfache Art und Weise mit den Mitteln aus der Standardbibliothek schreiben. <a href="http://www.cplusplus.com/reference/string/getline/" rel="nofollow">Lies</a> eine Zeile ein, <a href="http://www.cplusplus.com/reference/string/string/find/" rel="nofollow">finde</a> z.B. die Leerzeichen und <a href="http://www.cplusplus.com/reference/string/string/substr/" rel="nofollow">splitte</a> die eingelesene Zeile auf. Danach könntest du eine <a href="http://www.cplusplus.com/reference/stl/map/" rel="nofollow">map</a> verwenden mit den Kommandos als Schlüssel und als Wert z.B. einen Funktionszeiger.</p>
<pre><code class="language-cpp">typedef void (*command_type)(std::vector&lt;std::string&gt; const&amp;);
typedef std::map&lt;std::string, command_type&gt; command_map;
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155783</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 11 Dec 2011 16:52:39 GMT</pubDate></item></channel></rss>