C Warten bis bestimmter Buchstabe eingegeben wurde, sonst weiter warten.

Tockra

Lt. Commander
Registriert
Dez. 2008
Beiträge
1.063
Hey Leute,

ich möchte, dass mein Programm auf die Eingabe eines einzelnen Buchstaben wartet. Wird der falsche eingegeben, soll weiter gewartet werden bis der richtige eingegeben wurde. Mein Problem ist ,dass im untigen Beispiel auch die Eingabe von aaaab oder aba oder ähnliches zum Schleifenabbruch führt:

Code:
while(1)
    {
        scanf(" %c",%EingabeZeichen);
        
  
        
        if(EingabeZeichen == 'B' || EingabeZeichen == 'b')
            break;
    }
    return (EXIT_SUCCESS);

Wie kann ich den Spaß richtig umsetzen?
 
mit getc/getch/getche etc. scanf wartet bis du Enter drückst
 
Tockra schrieb:
Achso hätte ich verleicht erwähnen sollen, es geht um c unter Unix.

getch ist eine standard lib funktion, die sollte sich unter windows gleich verhalten wie unter Linux/Unix
 
Was soll denn genau passieren, wenn ein b eingeben wird?
 
Du willst das normale B+ENTER?
Code:
for(;;){
char buf[100]={};//Overkill
scanf_s("%99s",buf,100);
if(!strcmp("B",buf)||!strcmp("b",buf))
break;
}
Dein Problem ist, du suchst nach einem B in deinem Eingabestream, was bedeutet, dass jede Zeichenfolge, die ein B enthält automatisch auch gültig ist.
 
Zurück
Oben