centhron69
Grünschnabel
Folgendes ist eine Funktion um den stdin buffer zu leeren.
Eigentlich meine ich das diese Funktion gleichzusetzen ist mir folgender:
Allerdings funktioniert die zweite nicht. Wo ist der Unterschied?
Hier meine Ausgangssituation, fals ihr was besseres kennt:
Das Terminalprogramm erstellt eine Menüstruktur. Wenn ich nun den stdin buffer nicht leere und ein Zeichen beim scanf eingebe, komm ich in eine Endlosschleife. Das Programm sollte Standartkonform sein, deswegen nutze ich nicht getch().
Vielen dank für die Hilfe
Code:
char dummy;
while ((dummy = getchar()) != '\n' && dummy != EOF);
Eigentlich meine ich das diese Funktion gleichzusetzen ist mir folgender:
Code:
while(dummy != '\n' && dummy != EOF)
{
dummy = getchar();
}
Allerdings funktioniert die zweite nicht. Wo ist der Unterschied?
Hier meine Ausgangssituation, fals ihr was besseres kennt:
Das Terminalprogramm erstellt eine Menüstruktur. Wenn ich nun den stdin buffer nicht leere und ein Zeichen beim scanf eingebe, komm ich in eine Endlosschleife. Das Programm sollte Standartkonform sein, deswegen nutze ich nicht getch().
Code:
char choice;
char dummy;
while(choice != '9')
{
printf("Menüstruktur\n");
scanf("%c", &choice);
//Buffer leeren
while ((dummy = getchar()) != '\n' && dummy != EOF);
switch(choice)
{
//switchanweisung
}
Vielen dank für die Hilfe
