<?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[cin.getline Probleme]]></title><description><![CDATA[<p>Ich bin noch nicht sehr weit in c++.<br />
Doch schon jetzt kriege ich tausende Probleme.</p>
<p>Ich hab da ein kleines Spiel gebastelt, die eine Cheateingabe erlauben soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
#include &lt;conio.h&gt;                                
#include &lt;windows.h&gt;                              
#include &lt;stdlib.h&gt;                               
#include &lt;string.h&gt;

//Unwichtiger Teil...
char Eingabe;
char pMode;
bool turn_for_bot;                                      
bool ZahlenZiehenIstVorbei;                                              
int i, LEBEN_PLAYER, LEBEN_BOT, LEBEN_PLAYER_2, RUNDENZAHL;              
int Input=0, INPUT_BOT=0, timer_ss=0;
int Leben_Cheat=0;
const int MAX=7;

void Start();

//Unwichtiger Teil...

void Trennlinie()
{
     cout &lt;&lt; &quot;=================================================&quot; &lt;&lt;endl; 
}

void seekForCheats()
{
    int check, e;
    bool gueltig = true;
    char Cheats[MAX];

    cout &lt;&lt; &quot;\n****CHEATMENUE****\n&quot;;

    cin.getline(Cheats, MAX);          //Hier sollte eigentlich die Eingabe erfolgen.

    do
    {
    for (e=0;e&lt;7;e++)
    {
        switch (e)
        {
               case 0:
                    if (Cheats[e] != 'D')
                    {
                    gueltig = false;
                    }
                    break;
               case 1:
                    if (Cheats[e] != 'm')
                    {
                    gueltig =false;
                    }
                    break;
               case 2:
                    if (Cheats[e] != 'a')
                    {
                    gueltig =false;
                    }
                    break;
               case 3:
                    if (Cheats[e] != 'n')
                    {
                    gueltig =false;
                    }
                    break;
               case 4:
                    if (Cheats[e] != '4')
                    {
                    gueltig =false;
                    }
                    break;
               case 5:
                    if (Cheats[e] != 't')
                    {
                    gueltig =false;
                    }
                    break;
               case 6:
                    if (Cheats[e] != 'w')
                    {
                    gueltig =false;
                    }
                       else
                       {
                       cout &lt;&lt; &quot;\n!!Cheat initialisiert!!\nEingabe des Lebens: &quot;;
                       cin &gt;&gt; Leben_Cheat;

                         if (Leben_Cheat &lt; 3 || Leben_Cheat &gt; 50)
                         {
                         cout &lt;&lt; &quot;\n!!!Falsche Eingabe!!!, m\x94gl. Gr\x81nde :\n&quot;;
                         cout &lt;&lt; &quot;1. Die Eingabe war keine Zahl.\n&quot;;
                         cout &lt;&lt; &quot;2. Die Eingabe war kleiner als 3 (3 ist Standard Leben)\n&quot;;
                         cout &lt;&lt; &quot;3. Die Eingabe war gr\x94sser als 50 \n(Es w\x84re unfair....50 gegen 3 Leben reicht doch : D)\n&quot;;
                         }
                         else
                         { 
                         Leben_Cheat = Leben_Cheat - 3;
                         }
                       }
                    break;
        }

    }
    }while (gueltig);

    Start();

}

void Menue()
{
     cout &lt;&lt; &quot;\n\t\t***Hauptmenue***\n&quot;;
     cout &lt;&lt; &quot;(S)pielstart\n&quot;;
     cout &lt;&lt; &quot;(C)heatmenue\n&quot;;
     cout &lt;&lt; &quot;Spiel beenden = q          &quot;;

     char wahlpunkt;

     cin &gt;&gt; wahlpunkt;

     switch (wahlpunkt)
     {
            case 's':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Spiel...\n&quot;;
                 Start();
                 break;
             case 'S':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Spiel...\n&quot;;
                 Start();
                 break;
            case 'c':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Cheatmenue\n&quot;;

                 seekForCheats();
                 break;
            case 'C':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Cheatmenue\n&quot;;
                 seekForCheats();
                 break;
            case 'q':
                 system(&quot;exit&quot;);
                 break;
            case 'Q':
                 system(&quot;exit&quot;);
                 break;
            default:
                 cout &lt;&lt; &quot;\n***Falsche Eingabe***\n&quot;;
                 Menue();
     }
}

void Start ()
{
     cout &lt;&lt; &quot;\n\nSelect Play Mode:\n&quot;;
     cout &lt;&lt; &quot;Player vs. Player (PvP) = P&quot;;
     cout &lt;&lt; &quot;\nPlayer vs. Bot    (PvE) = E\nDas Leben beträgt jedes mal 3\n\n&quot;;
     cin &gt;&gt; pMode;

  //Prüfe ob 'p' anstatt von 'P' oder 'e' an Stelle von 'E' eingegeben wurden ist.
  if (pMode == 'p')
   {
   pMode = 'P';
   }
  else if (pMode == 'e')
   {
   pMode = 'E';
   }   

  //Führt zum gewähltem Modus
  if (pMode == 'P')
  {
        pMode = 0;
        Trennlinie();  
        cout &lt;&lt; &quot;Tut mir leid, aber diese Funktion ist noch nicht w\x84hlbar\n&quot;;
        Trennlinie();
        Start(); //Hier wird man eigentlich zur Spiele-Funktion geleitet, doch um nicht zu viel Text zu posten wiederhole ich die Funktion.
  }
  else if (pMode == 'E')
  {
         pMode = 0;
        Trennlinie();
        cout &lt;&lt; &quot;\nPvE ausgew\x84hlt...starte\n&quot;;
        Trennlinie();
        Start();//Hier wird man eigentlich zur Spiele-Funktion geleitet, doch um nicht zu viel Text zu posten wiederhole ich die Funktion.
  }
  else
  { 
     pMode = 0;
     cout &lt;&lt; &quot;!!!FALSCHE EINGABE!!!&quot;;
     Start();
  }
}

int main(int argc, char* argv[])
{

cout &lt;&lt; &quot;***Stein Schere Papier!***\t\t\t\tVer: 0.4.9&quot; &lt;&lt;endl;
cout &lt;&lt; &quot;***Hier geht es jetzt um das wohl bekannte Spiel\n***\x22Schere Stein oder Papier\x22&quot; &lt;&lt;endl;
cout &lt;&lt; &quot;***Du wirst gegen einen Freund oder Bot spielen k\x94nnen.&quot;;
cout &lt;&lt; &quot;\n***Weiter mit beliebiger Taste***&quot;;

Menue();

}
</code></pre>
<p>Dabei klappt das ganze nicht.<br />
Wenn man beim Hauptmenue angekommen ist udn &quot;C&quot; oder &quot;c&quot; eintippt gelangt man zur Funktion die den Cheat überprüfen soll.<br />
Doch sobald man da angelangt ist wird der Befehl &quot;cin.getline(Cheats, MAX);&quot; garnicht wahrgenohmen und dadurch wird man ins Spielemenue geworfen.<br />
Ich verstehe eifnach nciht warum er den befehl auslässt?<br />
Ich hoffe ihr habt eine Lösung = ).</p>
<p>Großes Danke im Voraus : D</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/261256/cin-getline-probleme</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 13:27:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/261256.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Feb 2010 19:42:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to cin.getline Probleme on Mon, 15 Feb 2010 19:42:57 GMT]]></title><description><![CDATA[<p>Ich bin noch nicht sehr weit in c++.<br />
Doch schon jetzt kriege ich tausende Probleme.</p>
<p>Ich hab da ein kleines Spiel gebastelt, die eine Cheateingabe erlauben soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
#include &lt;conio.h&gt;                                
#include &lt;windows.h&gt;                              
#include &lt;stdlib.h&gt;                               
#include &lt;string.h&gt;

//Unwichtiger Teil...
char Eingabe;
char pMode;
bool turn_for_bot;                                      
bool ZahlenZiehenIstVorbei;                                              
int i, LEBEN_PLAYER, LEBEN_BOT, LEBEN_PLAYER_2, RUNDENZAHL;              
int Input=0, INPUT_BOT=0, timer_ss=0;
int Leben_Cheat=0;
const int MAX=7;

void Start();

//Unwichtiger Teil...

void Trennlinie()
{
     cout &lt;&lt; &quot;=================================================&quot; &lt;&lt;endl; 
}

void seekForCheats()
{
    int check, e;
    bool gueltig = true;
    char Cheats[MAX];

    cout &lt;&lt; &quot;\n****CHEATMENUE****\n&quot;;

    cin.getline(Cheats, MAX);          //Hier sollte eigentlich die Eingabe erfolgen.

    do
    {
    for (e=0;e&lt;7;e++)
    {
        switch (e)
        {
               case 0:
                    if (Cheats[e] != 'D')
                    {
                    gueltig = false;
                    }
                    break;
               case 1:
                    if (Cheats[e] != 'm')
                    {
                    gueltig =false;
                    }
                    break;
               case 2:
                    if (Cheats[e] != 'a')
                    {
                    gueltig =false;
                    }
                    break;
               case 3:
                    if (Cheats[e] != 'n')
                    {
                    gueltig =false;
                    }
                    break;
               case 4:
                    if (Cheats[e] != '4')
                    {
                    gueltig =false;
                    }
                    break;
               case 5:
                    if (Cheats[e] != 't')
                    {
                    gueltig =false;
                    }
                    break;
               case 6:
                    if (Cheats[e] != 'w')
                    {
                    gueltig =false;
                    }
                       else
                       {
                       cout &lt;&lt; &quot;\n!!Cheat initialisiert!!\nEingabe des Lebens: &quot;;
                       cin &gt;&gt; Leben_Cheat;

                         if (Leben_Cheat &lt; 3 || Leben_Cheat &gt; 50)
                         {
                         cout &lt;&lt; &quot;\n!!!Falsche Eingabe!!!, m\x94gl. Gr\x81nde :\n&quot;;
                         cout &lt;&lt; &quot;1. Die Eingabe war keine Zahl.\n&quot;;
                         cout &lt;&lt; &quot;2. Die Eingabe war kleiner als 3 (3 ist Standard Leben)\n&quot;;
                         cout &lt;&lt; &quot;3. Die Eingabe war gr\x94sser als 50 \n(Es w\x84re unfair....50 gegen 3 Leben reicht doch : D)\n&quot;;
                         }
                         else
                         { 
                         Leben_Cheat = Leben_Cheat - 3;
                         }
                       }
                    break;
        }

    }
    }while (gueltig);

    Start();

}

void Menue()
{
     cout &lt;&lt; &quot;\n\t\t***Hauptmenue***\n&quot;;
     cout &lt;&lt; &quot;(S)pielstart\n&quot;;
     cout &lt;&lt; &quot;(C)heatmenue\n&quot;;
     cout &lt;&lt; &quot;Spiel beenden = q          &quot;;

     char wahlpunkt;

     cin &gt;&gt; wahlpunkt;

     switch (wahlpunkt)
     {
            case 's':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Spiel...\n&quot;;
                 Start();
                 break;
             case 'S':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Spiel...\n&quot;;
                 Start();
                 break;
            case 'c':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Cheatmenue\n&quot;;

                 seekForCheats();
                 break;
            case 'C':
                 cout &lt;&lt; &quot;\nWeiterleitung ins Cheatmenue\n&quot;;
                 seekForCheats();
                 break;
            case 'q':
                 system(&quot;exit&quot;);
                 break;
            case 'Q':
                 system(&quot;exit&quot;);
                 break;
            default:
                 cout &lt;&lt; &quot;\n***Falsche Eingabe***\n&quot;;
                 Menue();
     }
}

void Start ()
{
     cout &lt;&lt; &quot;\n\nSelect Play Mode:\n&quot;;
     cout &lt;&lt; &quot;Player vs. Player (PvP) = P&quot;;
     cout &lt;&lt; &quot;\nPlayer vs. Bot    (PvE) = E\nDas Leben beträgt jedes mal 3\n\n&quot;;
     cin &gt;&gt; pMode;

  //Prüfe ob 'p' anstatt von 'P' oder 'e' an Stelle von 'E' eingegeben wurden ist.
  if (pMode == 'p')
   {
   pMode = 'P';
   }
  else if (pMode == 'e')
   {
   pMode = 'E';
   }   

  //Führt zum gewähltem Modus
  if (pMode == 'P')
  {
        pMode = 0;
        Trennlinie();  
        cout &lt;&lt; &quot;Tut mir leid, aber diese Funktion ist noch nicht w\x84hlbar\n&quot;;
        Trennlinie();
        Start(); //Hier wird man eigentlich zur Spiele-Funktion geleitet, doch um nicht zu viel Text zu posten wiederhole ich die Funktion.
  }
  else if (pMode == 'E')
  {
         pMode = 0;
        Trennlinie();
        cout &lt;&lt; &quot;\nPvE ausgew\x84hlt...starte\n&quot;;
        Trennlinie();
        Start();//Hier wird man eigentlich zur Spiele-Funktion geleitet, doch um nicht zu viel Text zu posten wiederhole ich die Funktion.
  }
  else
  { 
     pMode = 0;
     cout &lt;&lt; &quot;!!!FALSCHE EINGABE!!!&quot;;
     Start();
  }
}

int main(int argc, char* argv[])
{

cout &lt;&lt; &quot;***Stein Schere Papier!***\t\t\t\tVer: 0.4.9&quot; &lt;&lt;endl;
cout &lt;&lt; &quot;***Hier geht es jetzt um das wohl bekannte Spiel\n***\x22Schere Stein oder Papier\x22&quot; &lt;&lt;endl;
cout &lt;&lt; &quot;***Du wirst gegen einen Freund oder Bot spielen k\x94nnen.&quot;;
cout &lt;&lt; &quot;\n***Weiter mit beliebiger Taste***&quot;;

Menue();

}
</code></pre>
<p>Dabei klappt das ganze nicht.<br />
Wenn man beim Hauptmenue angekommen ist udn &quot;C&quot; oder &quot;c&quot; eintippt gelangt man zur Funktion die den Cheat überprüfen soll.<br />
Doch sobald man da angelangt ist wird der Befehl &quot;cin.getline(Cheats, MAX);&quot; garnicht wahrgenohmen und dadurch wird man ins Spielemenue geworfen.<br />
Ich verstehe eifnach nciht warum er den befehl auslässt?<br />
Ich hoffe ihr habt eine Lösung = ).</p>
<p>Großes Danke im Voraus : D</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1856166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1856166</guid><dc:creator><![CDATA[Demian12]]></dc:creator><pubDate>Mon, 15 Feb 2010 19:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to cin.getline Probleme on Mon, 15 Feb 2010 19:58:37 GMT]]></title><description><![CDATA[<p>Nachdem im Hauptmenü des 'c' aus dem Eingabestrom gelesen wurde, ist immer noch das newline-Zeichen im Eingabepuffer, mit dem die Eingabe des 'c' abgeschlossen wurde. Dies wird direkt vom getline im Untermenü gelesen, welches dann einfach eine leere Zeile liefert.</p>
<p>Zwei einfache Möglichkeiten der Abhilfe:<br />
- In beiden Fällen getline verwenden<br />
- Den Eingabepuffer vor dem getline leeren (mittels cin::ignore)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1856178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1856178</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 15 Feb 2010 19:58:37 GMT</pubDate></item></channel></rss>