[C] Einfaches Menü in der Konsole

Saufrang

Grünschnabel
Huhu,

ich habe gerade ein banales Problem bei dem ich den Fehler nicht finde, vllt kann mir ja jemand auf die Sprünge helfen.
Ich hab ganz einfach ein kleines Menü für einen Test morgen vorgeschrieben. sieht auch alles ganz gut aus und bin soweit damit zu frieden
Nur leider funktioniert die do - while schleife nicht so wie sie soll. Kann mir jemand sagen woran das liegt ?

arbeite mit Visual Studio 2008

thx im voraus

PHP:
#include <stdio.h>
#include <stdlib.h>


int main()
{

char wahl;

	do
	{
		//system("cls");
		printf("A.  1..........\n");
		printf("B.  2..........\n");
		printf("C.  3..........\n");
		printf("D.  4..........\n");
		printf("E.  5..........\n");
		printf("Ihre Wahl:");
		scanf("%c", &wahl);
	} while(!(wahl =='A','a' || wahl=='B','b' || wahl=='C','c' || wahl=='D','d' || wahl=='E','e'));
	

	switch(wahl)
	{

	case 'A':
	case 'a':
		
			printf("hier kommt aufgabe 1 rein");
			break;


		
	case 'B':
	case 'b':
		
			printf("hier kommt aufgabe 2 rein");
			break;

		
	case 'C':
	case 'c':
		
			printf("hier kommt aufgabe 3 rein");
			break;

		
	case 'D':
	case 'd':
		
			printf("hier kommt aufgabe 5 rein");
			break;

		
	case 'E':
	case 'e':
		
			printf("hier kommt aufgabe 5 rein");
			break;

		
	}
  return EXIT_SUCCESS;
}
 
Solltest vielleicht auch mal sagen was nicht funktioniert :p Naja sieht so aus als würde es hieran liegen:

C++:
 } while(!(wahl =='A','a' || wahl=='B','b' || wahl=='C','c' || wahl=='D','d' || wahl=='E','e'));

das geht soweit ich weiß nicht einfach mit einem Komma, das muss wenn dann so sein:

C++:
 } while(!(wahl =='A' || wahl== 'a' ...));

ich würde es jedoch so lösen:

C++:
do
    {
        //system("cls");
        printf("A.  1..........\n");
        printf("B.  2..........\n");
        printf("C.  3..........\n");
        printf("D.  4..........\n");
        printf("E.  5..........\n");
        printf("Ihre Wahl:");
        scanf("%c", &wahl);
        
        wahl = toupper(wahl)
    } while(!(wahl =='A' || wahl=='B' || wahl=='C' || wahl=='D' || wahl=='E'));

Somit wird deine Auswahl automatisch auf Großschreibung gebracht. Die Funktion toupper() sollte standardmäßig vorhanden sein, wenn nicht muss noch etwas inkludiert werden.
 
Zuletzt bearbeitet von einem Moderator:
Zurück