<?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[AnsiString-Vergleich mit cin]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgendes Problem: Ich habe eine Konsolenanwendung mit VCL erstellt.<br />
Darin lese ich jetzt über cin einen char*-Wert ein!</p>
<p>Diesen vergleiche ich anschließend mit einem hardcodierten Wert:</p>
<pre><code class="language-cpp">char* TypedCommand;
     while(true)    {
          cin &gt;&gt; TypedCommand;

          // Arbeite alle bekannten Befehle ab...
          if(AnsiString(TypedCommand) == AnsiString(&quot;exit&quot;))    {
               ShowMessage(&quot;Funktion aufgerufen&quot;);
               // Beendet das Programm
               return 0;
          }    else {
               dsPrintText(&quot;Invalid or unknown command, please retype!\n&quot;, dscRed);
          }

          TypedCommand = &quot;&quot;; // Lösche den Befehl, nachdem er abgearbeitet wurde...
     }
</code></pre>
<p>Mein Problem ist jetzt, dass der Vergleich immer false ist! Selbst dann, wenn ich zweifelsfrei &quot;exit&quot; eingebe wird der else-Zweig ausgewertet. Hat jemand eine Idee, woran das liegen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/104470/ansistring-vergleich-mit-cin</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 20:03:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/104470.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Mar 2005 21:45:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AnsiString-Vergleich mit cin on Sat, 19 Mar 2005 21:45:30 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgendes Problem: Ich habe eine Konsolenanwendung mit VCL erstellt.<br />
Darin lese ich jetzt über cin einen char*-Wert ein!</p>
<p>Diesen vergleiche ich anschließend mit einem hardcodierten Wert:</p>
<pre><code class="language-cpp">char* TypedCommand;
     while(true)    {
          cin &gt;&gt; TypedCommand;

          // Arbeite alle bekannten Befehle ab...
          if(AnsiString(TypedCommand) == AnsiString(&quot;exit&quot;))    {
               ShowMessage(&quot;Funktion aufgerufen&quot;);
               // Beendet das Programm
               return 0;
          }    else {
               dsPrintText(&quot;Invalid or unknown command, please retype!\n&quot;, dscRed);
          }

          TypedCommand = &quot;&quot;; // Lösche den Befehl, nachdem er abgearbeitet wurde...
     }
</code></pre>
<p>Mein Problem ist jetzt, dass der Vergleich immer false ist! Selbst dann, wenn ich zweifelsfrei &quot;exit&quot; eingebe wird der else-Zweig ausgewertet. Hat jemand eine Idee, woran das liegen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/748582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/748582</guid><dc:creator><![CDATA[Reyx]]></dc:creator><pubDate>Sat, 19 Mar 2005 21:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString-Vergleich mit cin on Sat, 19 Mar 2005 21:48:19 GMT]]></title><description><![CDATA[<p>Hi,<br />
evtl. gibst du ja statt &quot;exit&quot; auch &quot;exit\n&quot; ein?</p>
<p>MfG</p>
<p>Alexander Sulfrian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/748586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/748586</guid><dc:creator><![CDATA[Alexander Sulfrian]]></dc:creator><pubDate>Sat, 19 Mar 2005 21:48:19 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString-Vergleich mit cin on Sat, 19 Mar 2005 21:51:10 GMT]]></title><description><![CDATA[<p>Was sagt denn der Debugger? Hast Du mal versucht, TypedCommand vorher in einen AnsiString zu<br />
konvertieren (in eine AnsiString-Variable einzutüten), und Dir dann den Wert angesehen?</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/748593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/748593</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Sat, 19 Mar 2005 21:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString-Vergleich mit cin on Sat, 19 Mar 2005 21:55:41 GMT]]></title><description><![CDATA[<p>Ich hab' jetzt mal ein</p>
<pre><code class="language-cpp">ShowMessage(&quot;\&quot;&quot;+AnsiString(TypedCommand)+&quot;\&quot;&quot;);
</code></pre>
<p>vor das</p>
<pre><code class="language-cpp">TypedCommand = &quot;&quot;; // Lösche den Befehl, nachdem er abgearbeitet wurde...
</code></pre>
<p>gesetzt, er hat mir &quot;exit&quot; ausgegeben (mit den Anführungsstrichen). Also kann es wohl nicht exit\n sein, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/748595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/748595</guid><dc:creator><![CDATA[Reyx]]></dc:creator><pubDate>Sat, 19 Mar 2005 21:55:41 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString-Vergleich mit cin on Sun, 20 Mar 2005 09:08:43 GMT]]></title><description><![CDATA[<p>Du könntest Dir auch eine zusätzliche Funktion erstellen, die Dir das eingetippte Kommando<br />
aufbereitet.<br />
Etwas in der Art:</p>
<pre><code class="language-cpp">typedef int TInputCommand;  // Besser geeignet wäre hier vielleicht enum...
TInputCommand getInputCommand(char* typedCommand); // Implementierung überlasse ich Dir :)
</code></pre>
<p>Dann kannst Du in Deinem Code einfach eine switch-Verzweigung einbauen.</p>
<p>Zum eigentlichen Problem: Ich würde an einer geeigneten Stelle mal einen Breakpoint setzen -<br />
oder hast Du keinen Debugger?</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/748713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/748713</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Sun, 20 Mar 2005 09:08:43 GMT</pubDate></item></channel></rss>