pytanie odnośnie drukowania na ekranie

0

Już mówię w czym problem. Powiedzmy, że mamy program główny i wątek poboczny. W programie głównym jest pętla, w której pobiera się tekst z konsoli używając funkcji gets(). W wątku pobocznym między wieloma instrukcjami znajduje się jedna, która drukuje jakiś tekst (np cout).
Problem jest taki, że jeżli w momencie wpisywania tekstu (w wierszu poleceń pod konsolą) wątek poboczny wykona instrukcję drukowania na ekranie (nie ważne jaką, cout, printf, fputc(...., stdout), etc...), to na ekranie pojawi się to co ta funkcja ma wyświetlić, plus jeszcze to co w danej chwili wpisywałem i w dodatku skasuje mi tekst który w danej chwili był wpisywany w wierszu poleceń.
Oczywiście powodem będzie znak nowej lini na końcu danych drukowanych przez funkcję z wątku pobocznego, ale niestety w moim przypadku tak musi być.
Ma ktoś jakiś pomysł na uporanie się z tym zjawiskiem??
Pozdrawiam.

0

Zainteresuj się mutexami. Nie wiem jakich wątków uzywasz, ale w kazdej implementacji powinno coś takiego być.

0

po raz kolejny tłumaczę, że to nie do końca kwestia synchronizacji... ale dobry człowiek z 4p uświadomił mi istnienie "ncurses". Więc problem rozwiązany.
Pozdrawiam.

0

mozesz uzyc np: kolejki, a co do curses to chyba masz na mysli funkcje refresh'o podobne, bo wtedy to faktycznie nie ma znaczenia kiedy watek cos wypisze skoro i tak jedna funkcja odsiwerzy terminal

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