<?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[[C++] Warum funktioniert es nur ein mal?]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich programmiere TicTacToe und habe ein Problem: Wenn der User nach einem Spiel ins Menu zurück ins Menu kehrt, kann er nix auswählen, weil der Computer erkennt, dass diese Taste ungültig ist. Dies ist aber beim Starten nicht der Fall!</p>
<p>Ich füge nur ein Teil des Codes hier ein, weil der gesamte Code über 300 Zeilen beträgt und nur hier der Fehler Stecken kann:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;time.h&gt;

using namespace std;

//Variables:

int nPlayer=1;
int nWinner=0;
int nOption=0;
int nDistance=20;
int nSelectedField=0;
int nHighField;
char cField [9]={0,0,0,0,0,0,0,0,0};
char cOption=0;
char cSelectedField=0;
char cAsk=0;
bool bGameOver = false;

//Functions:

void makeDistance();  // Macht 20 (nDistance) mal ' '
void menu();
void einzelspieler();
void zweispieler();
void makeField();
void Help();
void checkForWinner();
void clear();

//Main:

int main (){
	start:;
	menu ();
	if (nOption==1) einzelspieler();
	else if (nOption==2) zweispieler();
	else
	{
		cout&lt;&lt;endl;
		makeDistance();
		cout&lt;&lt;&quot;Falsche eingabe! Bitte Warten!&quot;;
		clock_t clock(50);
		goto start;
	}
	system (&quot;CLS&quot;);
	cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cout&lt;&lt;&quot;Wollen Sie Beenden (b) oder zum Menu zurückkehren (z)?&quot;&lt;&lt;endl;
	makeDistance();
	cAsk=getch();
	if (cAsk=='b') {}
	else goto start;
}

[...]

void menu (void)
{
	system (&quot;CLS&quot;);
	cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cout&lt;&lt;&quot;Einzelspieler (1)&quot;&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cout&lt;&lt;&quot;Zwei Spieler (2)&quot;&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cOption=getch();

	nOption = atoi (&amp;cOption);
}
</code></pre>
<p>Es wäre sehr nett wenn ihr mir helfen könntet!</p>
<p>Danke schon mal im vor hinaus!</p>
<p>HUND123 <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/298726/c-warum-funktioniert-es-nur-ein-mal</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 18:47:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298726.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jan 2012 14:43:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [C++] Warum funktioniert es nur ein mal? on Thu, 26 Jan 2012 14:43:50 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich programmiere TicTacToe und habe ein Problem: Wenn der User nach einem Spiel ins Menu zurück ins Menu kehrt, kann er nix auswählen, weil der Computer erkennt, dass diese Taste ungültig ist. Dies ist aber beim Starten nicht der Fall!</p>
<p>Ich füge nur ein Teil des Codes hier ein, weil der gesamte Code über 300 Zeilen beträgt und nur hier der Fehler Stecken kann:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;time.h&gt;

using namespace std;

//Variables:

int nPlayer=1;
int nWinner=0;
int nOption=0;
int nDistance=20;
int nSelectedField=0;
int nHighField;
char cField [9]={0,0,0,0,0,0,0,0,0};
char cOption=0;
char cSelectedField=0;
char cAsk=0;
bool bGameOver = false;

//Functions:

void makeDistance();  // Macht 20 (nDistance) mal ' '
void menu();
void einzelspieler();
void zweispieler();
void makeField();
void Help();
void checkForWinner();
void clear();

//Main:

int main (){
	start:;
	menu ();
	if (nOption==1) einzelspieler();
	else if (nOption==2) zweispieler();
	else
	{
		cout&lt;&lt;endl;
		makeDistance();
		cout&lt;&lt;&quot;Falsche eingabe! Bitte Warten!&quot;;
		clock_t clock(50);
		goto start;
	}
	system (&quot;CLS&quot;);
	cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cout&lt;&lt;&quot;Wollen Sie Beenden (b) oder zum Menu zurückkehren (z)?&quot;&lt;&lt;endl;
	makeDistance();
	cAsk=getch();
	if (cAsk=='b') {}
	else goto start;
}

[...]

void menu (void)
{
	system (&quot;CLS&quot;);
	cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cout&lt;&lt;&quot;Einzelspieler (1)&quot;&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cout&lt;&lt;&quot;Zwei Spieler (2)&quot;&lt;&lt;endl&lt;&lt;endl;
	makeDistance();
	cOption=getch();

	nOption = atoi (&amp;cOption);
}
</code></pre>
<p>Es wäre sehr nett wenn ihr mir helfen könntet!</p>
<p>Danke schon mal im vor hinaus!</p>
<p>HUND123 <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/2172891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172891</guid><dc:creator><![CDATA[HUND123]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:43:50 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Warum funktioniert es nur ein mal? on Thu, 26 Jan 2012 14:49:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn du das zweite Mal in &quot;menu()&quot; reingehst, welche Werte haben cOption und nOption?</p>
<pre><code>cOption=getch();
nOption = atoi (&amp;cOption);
</code></pre>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172900</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Warum funktioniert es nur ein mal? on Thu, 26 Jan 2012 14:51:02 GMT]]></title><description><![CDATA[<ol>
<li>Lass goto sein</li>
<li>lass globale Variablen sein</li>
<li>was heißt der Compiler erkennt, das diese Taste ungültig ist? Welche ist &quot;diese&quot;? Der Compiler erkennt da garnichts, denn wenn das Programm läuft hat der Compiler schon lange Feierabend.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2172901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172901</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 26 Jan 2012 14:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Warum funktioniert es nur ein mal? on Thu, 26 Jan 2012 15:02:24 GMT]]></title><description><![CDATA[<p>Ok, Wenn ich das Programm Starte, wird die Funktion &quot;main&quot; durchgeführt, diese ruft &quot;menu&quot; auf, das menu Übergibt dann die Variable cOption &amp; nOption, die die main verarbeitet, &quot;1&quot; -&gt; einspieler; &quot;2&quot; -&gt; zweiSpieler. Ist keine von den Beiden gedrückt, kommt die Fehlermeldun (im Editor):&quot;Falsche eingabe!&quot;. Dann wird gefordert, nochmal einzugeben. Das geht so weiter, bis die Eingabe korrekt ist, dann werden die neue Funktionen auufgerufen, nach jedem Spiel werden die Variablen &quot;auf null gesetzt&quot;:</p>
<pre><code class="language-cpp">void clear (void)
{
	//Field
	for (int i=0; i&lt;=8; i++) cField[i]=0;
	//Other Variables:
	nWinner=0;
	cAsk=0;
	nPlayer=1;
	nOption=0;
	nSelectedField=0;
	cOption=0;
	cSelectedField=0;
	bGameOver = false;
}
</code></pre>
<p>Dann wird das Menu geöffnet, dass heißt, 'goto start' in der main.</p>
<p>Die globalen Variablen habe ich gemacht, weil jede Funktion Variablen ändertn soll, und Zwar für alle Funktionen, so ist das am Einfachsten! <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>HUND123</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172911</guid><dc:creator><![CDATA[HUND123]]></dc:creator><pubDate>Thu, 26 Jan 2012 15:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Warum funktioniert es nur ein mal? on Thu, 26 Jan 2012 15:18:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>atoi() funktioniert nur mit nullterminierten Strings, NICHT mit einem einzelnen Zeichen (char)!</p>
<p>Da du aber den ASCII-Wert der Ziffer in eine Zahl wandeln möchtest, reicht auch einfach</p>
<pre><code class="language-cpp">nOption = cOption - '0';
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2172929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172929</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 26 Jan 2012 15:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Warum funktioniert es nur ein mal? on Thu, 26 Jan 2012 15:22:44 GMT]]></title><description><![CDATA[<p>Ok, danke, das war der Fehler <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>HUND123</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172934</guid><dc:creator><![CDATA[HUND123]]></dc:creator><pubDate>Thu, 26 Jan 2012 15:22:44 GMT</pubDate></item></channel></rss>