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
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>.