C – Input Buffer löschen

Hi Leute,
hier Programm:
[code]
#include

int main ()
{
int temp;

while (temp != 0)
{
printf(“Press any key to countinue.\n”);
scanf(“%i”, &temp);
}
}
[/code]
Die Schlaufe soll so lange ausgeführt werden, bis der Benutzer die Zahl 0 eingibt.
Funktioniert auch wunderbar, solange nur Zahlen eingegeben werden.
Wird nun allerdings ein Zeichen eingegeben, bleibt dass Programm in der Schleife hängen. Habe den Tipp bekommen, dass scanf() das Zeichen nicht parsen kann (da temp ja integer ist) und die Eingabe deshalb im Input Buffer bleibt. Da scanf() nicht korrekt parsen kann, ist der Rückgabewert 0. scanf() versucht also immer wieder zu parsen, der Rückgabewert ist immer 0 und die Endlosschleife ist perfekt.

Nun meine Fragen:
Was genau ist der Input Buffer?
Wie kann ich den Input Buffer löschen?
Kann ich evt. den Rückgabewert von scanf() manipulieren?

Google bereit durchforstet, falls ihr aber doch was findet hab ich auch kein Problem damit. 😀

Danke im Voraus und Gruss
kaktus

Leave a Reply

Your email address will not be published. Required fields are marked *