getc(stdin) gibt zwei Zeichen. Gibt es einen besseren Weg, dies zu behandeln?

Ich bin derzeit mit getc() in einer Schleife zum empfangen von Eingabe von einem Benutzer:

char x;
while (x != 'q')
{    
 printf("(c)ontinue or (q)uit?");
 x = getc(stdin);
}

Wenn der Benutzer c die Schleife ausführt, vermutlich unter ein zusätzliches Zeichen (terminator oder vielleicht ein Zeilenumbruch, ich bin zu raten?) als input das erste mal um.

Kann ich dies verhindern, indem Sie so etwas wie:

char toss;
char x;
while (x != 'q')
{    
 printf("(c)ontinue or (q)uit?");
 x = getc(stdin);
 toss = getc(stdin);
}

Aber das scheint mir nur ein fauler newbie Umgang mit ihm. Gibt es eine bessere Möglichkeit, dies zu tun mit getc oder sollte ich es als einen string, und mit dem ersten Charakter der Reihe? Gibt es eine andere, noch bessere Möglichkeit, dass ich noch nicht einmal in Betracht gezogen?

InformationsquelleAutor cwm | 2013-03-01
Schreibe einen Kommentar