<?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[Merkwüriges Verhalten in switch-Block]]></title><description><![CDATA[<p>Heyho!</p>
<p>Ich habe folgendes Problem.</p>
<pre><code class="language-cpp">case 3: cout &lt;&lt; &quot;Nachricht: &quot;; 
         do
         {
          i++;
          test[i] = getchar();
         }
         while 
         (
         test[i] != '\n');
         test[i] = '\0'; 
         send();
         break;
</code></pre>
<p>In dem Case soll eine Nachricht eingetippt werden(eigentlich müsste dies einfacher mit der Funktion gets gehen). Anschließend wird die Funktion send aufgerufen um die Nachricht zu verschicken. Doch leider wird der Case nicht sachgemäß ausgeführt. Anstatt mir die Zeit zu geben, die Nachricht einzutippen, geht man sofort in die Funktion &quot;send&quot;, welche aber einen Fehler zurückgibt, da keine Nachricht vorhanden ist.<br />
Bin ziemlich ratlos. Denn der Theorie nach finde ich dort keinen Fehler drin. Aber die Praxis ist ja was völlig anderes als die Theorie. XD</p>
<p>Ich benutze wx-devc++.</p>
<p>Wäre schon ne tolle Sache, wenn jemand die Zeit dazu hätte, dort den Fehler zu finden.</p>
<p>Sollte euch der Codeschnipsel nicht reichen, kann ich auch das bisherige Programm hier ausstellen.</p>
<p>MFG</p>
<p>Takeo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146046/merkwüriges-verhalten-in-switch-block</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 15:17:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146046.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 May 2006 17:19:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Wed, 03 May 2006 17:19:05 GMT]]></title><description><![CDATA[<p>Heyho!</p>
<p>Ich habe folgendes Problem.</p>
<pre><code class="language-cpp">case 3: cout &lt;&lt; &quot;Nachricht: &quot;; 
         do
         {
          i++;
          test[i] = getchar();
         }
         while 
         (
         test[i] != '\n');
         test[i] = '\0'; 
         send();
         break;
</code></pre>
<p>In dem Case soll eine Nachricht eingetippt werden(eigentlich müsste dies einfacher mit der Funktion gets gehen). Anschließend wird die Funktion send aufgerufen um die Nachricht zu verschicken. Doch leider wird der Case nicht sachgemäß ausgeführt. Anstatt mir die Zeit zu geben, die Nachricht einzutippen, geht man sofort in die Funktion &quot;send&quot;, welche aber einen Fehler zurückgibt, da keine Nachricht vorhanden ist.<br />
Bin ziemlich ratlos. Denn der Theorie nach finde ich dort keinen Fehler drin. Aber die Praxis ist ja was völlig anderes als die Theorie. XD</p>
<p>Ich benutze wx-devc++.</p>
<p>Wäre schon ne tolle Sache, wenn jemand die Zeit dazu hätte, dort den Fehler zu finden.</p>
<p>Sollte euch der Codeschnipsel nicht reichen, kann ich auch das bisherige Programm hier ausstellen.</p>
<p>MFG</p>
<p>Takeo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1050429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1050429</guid><dc:creator><![CDATA[Takeo]]></dc:creator><pubDate>Wed, 03 May 2006 17:19:05 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Wed, 03 May 2006 17:32:40 GMT]]></title><description><![CDATA[<p>warum benutzt du nicht getline?<br />
wäre doch besser als so ne blöde schleife.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1050436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1050436</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Wed, 03 May 2006 17:32:40 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Wed, 03 May 2006 17:45:54 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du solltest wirklich getline verwenden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main() {
  string str(&quot;&quot;);
  getline(cin, str);
  cout&lt;&lt;&quot;Sie haben &quot;&lt;&lt;str&lt;&lt;&quot; eingegeben.\n&quot;;
  return 0;
}
</code></pre>
<p>Vermutlich ist dein Fehler damit schon behoben.</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1050454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1050454</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Wed, 03 May 2006 17:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Wed, 03 May 2006 18:17:03 GMT]]></title><description><![CDATA[<p>Habe es eben mit getline ausprobiert, geht ebenfalls nicht.</p>
<p>Hier mal die send-Funktion, wobei ich meinerseits eig. ausschließe, das es an dieser liegt.</p>
<pre><code class="language-cpp">void send()
{

 if(sigstat==1)
 {
 Total = Befehl + sfPC + &quot; &quot; + SMSG + &quot; +++ &quot; + sig;
 }
 else
 {
  Total = Befehl + sfPC + &quot; &quot; + SMSG;
 }    

 system(Total.c_str());
 system(&quot;cls&quot;);
 cout &lt;&lt; &quot;==&gt; Nachricht wurde geschickt!&quot; &lt;&lt; endl;
 session();    
}
</code></pre>
<p>Wenn man öfters diesen Case durchläuft, kann man den Satz lesen, das dass senden von Dateien nicht länger unterstützt wird. Bezieht sich auf &quot;net send&quot;. Irgendwie scheint der übergebene String nicht zu stimmen, was aber klar ist, wenn die Nachricht fehlt. Dann ist nur PC-Name da, und da der glaubt er, das es sich wohl um eine Datei handeln muss.</p>
<p>EDIT:<br />
Habe eben den Else-Zweig mal voreingestellt und es funktioniert. Es liegt wirklich daran, das die Nachricht nicht eingelesen wird. Aber wieso kann ich sie nicht einlesen?</p>
<pre><code class="language-cpp">Total = Befehl + &quot;Takeobase&quot; + &quot; &quot; + &quot;Hallo&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1050465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1050465</guid><dc:creator><![CDATA[Takeo]]></dc:creator><pubDate>Wed, 03 May 2006 18:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Thu, 04 May 2006 06:13:59 GMT]]></title><description><![CDATA[<p>Was heißt hier &quot;geht nicht&quot;? Eventuell hast du ja vergessen, den eingegebenen Text an deine send() Funktion weiterzugeben (send() hat keine Parameter und greift auch nicht auf &quot;test&quot; zu, wo der String drinsteht).</p>
<p>Ein anderer Punkt könnte sein, daß noch ein \n vom vorigen Eingabebefehl im Tastaturpuffer lauert - den mußt du natürlich per ignore() entsorgen, bevor du weiterliest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1050623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1050623</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 04 May 2006 06:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Thu, 04 May 2006 19:48:29 GMT]]></title><description><![CDATA[<p>Ich hab eben gegoogelt. Wie muss ich die ignore-function anwenden? hab nur was mit cin.ignore gefunden... da wartet der aber auf ne Eingabe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051117</guid><dc:creator><![CDATA[Takeo]]></dc:creator><pubDate>Thu, 04 May 2006 19:48:29 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Fri, 05 May 2006 06:17:33 GMT]]></title><description><![CDATA[<p>Ja, cin.ignore() ist die richtige Funktion - der übergibst du als ersten Parameter eine relativ große Zahl (wenn du auf Nummer Sicher gehen willst: numeric_limits&lt;int&gt;::max()) und als zweiten Parameter '\n'. Dann holt cin so lange Zeichen aus dem Tastaturbuffer und entsorgt sie, bis es ein Newline erwischt.</p>
<p>(und wenn du das unmittelbar vor deinem getline()-Aufruf machst, fällt auch niemandem auf, daß er warten muß)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051192</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 May 2006 06:17:33 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwüriges Verhalten in switch-Block on Fri, 05 May 2006 16:28:59 GMT]]></title><description><![CDATA[<p>Ich hab es jetzt so gemacht:</p>
<p>cin.ignore( 1, '/n');</p>
<p>Ist die Zahl höher, muss ich ewig ENTER durchweg drücken, damit er im Programm weiterläuft. Aber es funktioniert und das ist wichtig. Danke dir. Wusste nicht, das die Eingaben noch so lange im Speicher bleiben. Nochmal vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051657</guid><dc:creator><![CDATA[Takeo]]></dc:creator><pubDate>Fri, 05 May 2006 16:28:59 GMT</pubDate></item></channel></rss>