<?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[Exit und restart&#x2F;continue bug?]]></title><description><![CDATA[<p>Hallo! <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="🙂"
    /><br />
Zuerst möchte ich im vorhinein sagen, dass ich ein blutiger Anfänger und Neuling bin was C++ betrifft und bisher nur wenig Erfahrung damit gemacht habe. Daher bitte um Verständniss falls das eine oder andere in diesem Code keinen Sinn ergeben sollte oder völlig fehl am Platz ist.</p>
<p>Der Code generiert zwei random Werte und addiert diese miteinander. Wird das addierte Ergebniss vom User richtig eingegeben so kann dieser per Keybinds entscheiden ob er das Programm restarten(continue) will oder schließen möchte. Gibt der User eine falsche Zahl ein, so kann er ebenfalls entscheiden ob er es nochmal versuchen will oder nicht (per Keybinds wieder).</p>
<p><strong>Nun aber zu dem Problem:</strong> Wird beim ersten Versuch das Ergebniss <strong>richtig</strong> eingegeben, so ist man in der Lage entweder zu restarten (continue) oder das Programm zu schließen. Führt man fort und drückt die <strong>Taste 1</strong> um weiter zu machen, ist man beim <em>zweitem Versuch</em> nicht mehr in der Lage das Programm zu schließen durch das drücken der <strong>Taste 2</strong>. Jedoch continue durch das drücken der <strong>Taste 1</strong> lässt sich ausführen.</p>
<p>Leider bin ich bis jetzt zu keiner Lösung gekommen..</p>
<p>Hier ist der Code:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main(){

          int n1 = rand() % 100;  // Random Zahl 1.
          int n2 = rand() % 100;  // Random Zahl 2.
          int num1;               // Eingabe für Ergebniss/Lösung.
          int pick;               // Entscheidung für restart oder exit.
          int answer;             // Richtiges addiertes Ergebniss.
          system (&quot;COLOR A&quot;);     // Farbe der Schrift in der Textbox.

          cout &lt;&lt;&quot;What is &quot;&lt;&lt;n1&lt;&lt;&quot;+&quot;&lt;&lt;n2&lt;&lt;&quot;?&quot;&lt;&lt;endl;  

          {
               answer= n1 + n2;   // Berechne das Ergeniss/richtige Antwort.
          }

         cin &gt;&gt; num1;             // Gebe Lösung ein.

         if (num1 == answer){     // Vergleiche Lösung mit richtiger Antwort

         cout &lt;&lt;&quot;Correct!&quot;&lt;&lt;endl;
         cout &lt;&lt;&quot;Press 1 to continue&quot;&lt;&lt;endl; 
         cout &lt;&lt;&quot;Press 2 to exit&quot;&lt;&lt;endl;

         cin &gt;&gt; pick;             // Entscheide für continue oder exit.
         if (pick == 1){          // Wenn 1 gedrückt wird --&gt; continue.

                  main ();        // Continue.

                  }

          if (pick == 2){         // Wenn 2 gedrückt wird --&gt; exit.

                  return 0;       // Exit.
                  }       

          }
          if (num1 != answer){        //Wenn Lösung falsch ist...
                cout &lt;&lt;&quot;False!&quot;&lt;&lt;endl;  
                cout &lt;&lt;&quot;Press 1 to try again!&quot;&lt;&lt;endl;
                cout &lt;&lt;&quot;Press 2 to exit this programm!&quot;&lt;&lt;endl;

          }

          cin &gt;&gt; pick;            // Entscheide für continue oder exit.    

          if(pick == 1){          // Wenn 1 gedrückt wird --&gt; continue.

                  main ();        // Continue.

                  }

          if (pick == 2){         // Wenn 2 gedrückt wird --&gt; exit.

                     return 0;    // Exit.

                   }

          return 0;               // Exit.

          }
</code></pre>
<p>Danke für jede Antwort! <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/topic/326575/exit-und-restart-continue-bug</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 13:12:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326575.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jun 2014 13:52:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 13:52:06 GMT]]></title><description><![CDATA[<p>Hallo! <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="🙂"
    /><br />
Zuerst möchte ich im vorhinein sagen, dass ich ein blutiger Anfänger und Neuling bin was C++ betrifft und bisher nur wenig Erfahrung damit gemacht habe. Daher bitte um Verständniss falls das eine oder andere in diesem Code keinen Sinn ergeben sollte oder völlig fehl am Platz ist.</p>
<p>Der Code generiert zwei random Werte und addiert diese miteinander. Wird das addierte Ergebniss vom User richtig eingegeben so kann dieser per Keybinds entscheiden ob er das Programm restarten(continue) will oder schließen möchte. Gibt der User eine falsche Zahl ein, so kann er ebenfalls entscheiden ob er es nochmal versuchen will oder nicht (per Keybinds wieder).</p>
<p><strong>Nun aber zu dem Problem:</strong> Wird beim ersten Versuch das Ergebniss <strong>richtig</strong> eingegeben, so ist man in der Lage entweder zu restarten (continue) oder das Programm zu schließen. Führt man fort und drückt die <strong>Taste 1</strong> um weiter zu machen, ist man beim <em>zweitem Versuch</em> nicht mehr in der Lage das Programm zu schließen durch das drücken der <strong>Taste 2</strong>. Jedoch continue durch das drücken der <strong>Taste 1</strong> lässt sich ausführen.</p>
<p>Leider bin ich bis jetzt zu keiner Lösung gekommen..</p>
<p>Hier ist der Code:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main(){

          int n1 = rand() % 100;  // Random Zahl 1.
          int n2 = rand() % 100;  // Random Zahl 2.
          int num1;               // Eingabe für Ergebniss/Lösung.
          int pick;               // Entscheidung für restart oder exit.
          int answer;             // Richtiges addiertes Ergebniss.
          system (&quot;COLOR A&quot;);     // Farbe der Schrift in der Textbox.

          cout &lt;&lt;&quot;What is &quot;&lt;&lt;n1&lt;&lt;&quot;+&quot;&lt;&lt;n2&lt;&lt;&quot;?&quot;&lt;&lt;endl;  

          {
               answer= n1 + n2;   // Berechne das Ergeniss/richtige Antwort.
          }

         cin &gt;&gt; num1;             // Gebe Lösung ein.

         if (num1 == answer){     // Vergleiche Lösung mit richtiger Antwort

         cout &lt;&lt;&quot;Correct!&quot;&lt;&lt;endl;
         cout &lt;&lt;&quot;Press 1 to continue&quot;&lt;&lt;endl; 
         cout &lt;&lt;&quot;Press 2 to exit&quot;&lt;&lt;endl;

         cin &gt;&gt; pick;             // Entscheide für continue oder exit.
         if (pick == 1){          // Wenn 1 gedrückt wird --&gt; continue.

                  main ();        // Continue.

                  }

          if (pick == 2){         // Wenn 2 gedrückt wird --&gt; exit.

                  return 0;       // Exit.
                  }       

          }
          if (num1 != answer){        //Wenn Lösung falsch ist...
                cout &lt;&lt;&quot;False!&quot;&lt;&lt;endl;  
                cout &lt;&lt;&quot;Press 1 to try again!&quot;&lt;&lt;endl;
                cout &lt;&lt;&quot;Press 2 to exit this programm!&quot;&lt;&lt;endl;

          }

          cin &gt;&gt; pick;            // Entscheide für continue oder exit.    

          if(pick == 1){          // Wenn 1 gedrückt wird --&gt; continue.

                  main ();        // Continue.

                  }

          if (pick == 2){         // Wenn 2 gedrückt wird --&gt; exit.

                     return 0;    // Exit.

                   }

          return 0;               // Exit.

          }
</code></pre>
<p>Danke für jede Antwort! <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/2405401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405401</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 24 Jun 2014 13:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 13:55:25 GMT]]></title><description><![CDATA[<p>die <code>main</code> -funktion aufzurufen ist afaik ub. mach es mit einer grossen hauptschleife.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2405402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405402</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Tue, 24 Jun 2014 13:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 17:14:52 GMT]]></title><description><![CDATA[<p>Schreib dir doch mal vor jedes cin, was der Benutzer eingeben soll:</p>
<pre><code>std::cout &lt;&lt; &quot;Gib mir das Ergebnis von &quot; &lt;&lt; n1 &lt;&lt; &quot; + &quot; &lt;&lt; n2 &lt;&lt; &quot; ein: &quot;;
std::cin &gt;&gt; answer;
</code></pre>
<p>Dann wirst du ganzschnell sehen, was bei dir falsch läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2405423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405423</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 24 Jun 2014 17:14:52 GMT</pubDate></item><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 18:40:44 GMT]]></title><description><![CDATA[<p>Danke für die Antworten!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18806">@Skym0sh0</a> Ich meine den Fehler gefunden zu haben da das Programm nun funktioniert. Mir ist danach auch eine andere Variante aufgefallen mit der das Programm funktionsgemäß lief. Die codelines für die Entscheidung wurden bei der ersten Entscheidung vollkommen entfernt.</p>
<pre><code>cin &gt;&gt; pick;             // Entscheide für continue oder exit.
         if (pick == 1){          // Wenn 1 gedrückt wird --&gt; continue.

                  main ();        // Continue.

                  }

          if (pick == 2){         // Wenn 2 gedrückt wird --&gt; exit.

                  return 0;       // Exit.
                  }
</code></pre>
<p>Bezüglich dem eigentlichen Fehler:</p>
<pre><code>if (num1 != answer){        //Wenn Lösung falsch ist...
                cout &lt;&lt;&quot;False!&quot;&lt;&lt;endl;  
                cout &lt;&lt;&quot;Press 1 to try again!&quot;&lt;&lt;endl;
                cout &lt;&lt;&quot;Press 2 to exit this programm!&quot;&lt;&lt;endl;

           }                      // Das war der Fehler. Da wurde die Funktion geschlossen.

          cin &gt;&gt; pick;            // Entscheide für continue oder exit.    

          if(pick == 1){          // Wenn 1 gedrückt wird --&gt; continue.

                  main ();        // Continue.

                  }

          if (pick == 2){         // Wenn 2 gedrückt wird --&gt; exit.

                     return 0;    // Exit.

                   }

          return 0;               // Exit.

          }

          return 0;

          }
</code></pre>
<p>Durch das entfernen dieser Klammer funktioniert es jetzt so wie es sollte <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2405430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405430</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 24 Jun 2014 18:40:44 GMT</pubDate></item><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 18:53:59 GMT]]></title><description><![CDATA[<p>du hast meinen post nicht gelesen, was? oder hast du einfach keine lust es richtig zu machen?</p>
<p>§3.6.1.3 schrieb:</p>
<blockquote>
<p>The function main shall not be used within a program.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2405435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405435</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Tue, 24 Jun 2014 18:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 19:13:02 GMT]]></title><description><![CDATA[<p>Keine Lust ist meinem empfinden nach der falsche Ausdruck, so solls nicht aussehen. Du hast eventuell meine ersten Sätze des Threads überflogen! Vielleicht habe ich vergessen zu erwähnen, dass es mir sehr geholfen wäre wenn vielleicht ein Beispiel hinzugefügt wird, wie das und jenes aussehen könnte. Denn unter &quot;Hauptschleife&quot; statt &quot;main&quot; kann ich mir momentan nichts vorstellen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Aber natürlich, ich würde die korrekte Version gerne sehen wollen! <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>Vielen Dank für den Hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2405441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405441</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 24 Jun 2014 19:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to Exit und restart&#x2F;continue bug? on Tue, 24 Jun 2014 19:53:50 GMT]]></title><description><![CDATA[<p>Aber eine Schleife ( <code>for, while, do-while</code> ) kennst du?<br />
Die sind nicht nur zum Durchzählen da, sondern zum wiederholen.</p>
<p>Du sollst main nicht rekursiv aufrufen sondern einfach deinen Code wiederholen.<br />
Da diese Schleife in main ist und fast alles umschließt, wird diese Hauptschleife genannt.</p>
<p>Und <code>else</code> als Alternative bei <code>if</code> kennst du auch?<br />
Da sparst du dir ein zweites <code>if</code> mit negierter Bedingung.</p>
<pre><code>do
{ Frage stellen
  Antwort holen

  if (Antwort ist richtig)
  { Glückwunsch ausgeben
  } 
  else 
  { Bedauern ausgeben
  }

  Ausgabe &quot;Nochmal 1, Ende 2&quot;
  Eingabe
} while (Eingabe != 2)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2405453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2405453</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Tue, 24 Jun 2014 19:53:50 GMT</pubDate></item></channel></rss>