kleiner fehler in der schleife



  • Hallo, ich hab in meinem Programm nen kleinen Schönheitsfehler und ich weiß nicht wie ich ihn loswerde, oder was ihn hervorruft. Hier meine main():

    int main()
    {
          char weiter = 'j';
          Tree *tree_1 = NULL;
          DTreeNode t;
          tree_1 = allocTree( tree_1 );
          printCurrent( tree_1 );
    
          while (weiter == 'j') {
                spiel (tree_1);
                do {
                printf ("Weiterspielen ? [j/n]"); scanf ("%c", &weiter);
                } while (weiter != 'j' && weiter != 'n');
          }
    
      system("PAUSE");	
      return 0;
    }
    

    Wenn ich als Antwort auf "Weiterspielen" j oder n eingebe, funktioniert alles wie es soll, aber wenn ich irgendwas anderes eingebe, wird die Frage wiederholt, und zwar 2mal ?!? Was mach ich dagegen ?



  • Das kenne ich. Ich glaube, das liegt am Buffer. Wenn Du Windoof hast kannst Du einfach mit

    fflush(stdin);
    

    den Eingabebuffer leeren. Unter Linux habe ich mir eine Konstruktion mit

    getchar()
    

    gebaut, die das repariert.
    Versuche es auch mal mit 0 und 1 statt 'n' und 'j'.



  • danke 🙂
    das mit dem fflush funktioniert 👍


Anmelden zum Antworten