[ANSI C] Buforowanie klawiatury pod linuksem

0

Witam,
problem jest taki:
powiedzmy uzytkownik wpisze mi do konsoli trzy znaki: "abc", ja pobiorę jeden poprzez getchar();
i chcę wyczyścić bufor, czyli pozostałe dwa "bc" mają zostać wyrzucone. Według standardu ANSI C taką możliwość powinno dać wywołanie : fflush( stdin ), z tym że u mnie pod linuksem to nie działa. Nie da się w ten sposób u mnie czyścić bufora. Mam więc pytanie dla osób bardziej zaawansowanych ode mnie: jak to można zrobić inaczej w C? ewentualnie czy jest jakaś funkcja systemowa która na to pozwala? Uśmiech
Z góry dzięki

0

Ja jak chcę mieć kontrolę nad tym co i jak czytam to najczęściej używam bezpośrednio read i write....

Nie mógłbyś po prostu puścić getchar w pętli?
do { c = getchar(); } while (c!=EOF && c!='\n')
To powinno ominąć wszystko do nowego wiersza.

A tak BTW (ale to chyba nie ten problem): konsola pod Linuksem domyślnie buforuje dane wierszami, więc wpisywane znaki zostaną przekazane programowi dopiero wtedy, kiedy naciśniesz <Enter>.

1 użytkowników online, w tym zalogowanych: 0, gości: 1