Rozwijanie tekstu "po znaku"

0

Witam, piszę pewien program i aby go uatrakcyjnić chciałem aby treść wyświetlana na ekranie rozwijała się powoli "po jednym znaku". W sensie, że każdy znak na ekranie pojawia się z mały opóźnieniem.

Kod mający wykonać to zadanie wygląda następująco:

int t;
t = _title.length();
 for(int i=0; i<t; i++ )
 {
     cout << _title[i];
     sleep(1);
 }

W stringu _title znajduje się jakiś wpisany wcześniej tekst.
Funkcja sleep() pochodzi z biblioteki unistd.h (pracuje pod Linuxem).

W teorii wszystko powinno działać, jednak po odpaleniu program przerabia całą pętlę, a dopiero później wyświetla (całego już) stringa.
Po dodaniu nowej linii po każdym znaku program działa poprawnie, z tym że wyświetla znaki jeden pod drugim.

Stąd moje pytanie: czy da się zrobić tak, aby po każdym powtórzeniu pętli program od razu wypisywał znak na ekran (wszytsko w jednym wierszu)?

Z góry dziękuje za odpowiedź ;)

3

std::cout jest buforowany. Jeśli chcesz wymusić wyświetlanie, wywołaj std::cout.flush(). Dodawanie std::endl wywołuje tę funkcję niejawnie, więc dlatego działa.

EDYCJA:
Ładniejszym zapisem będzie:

cout << _title[i] << flush;
0

Działa świetnie!

Dzięki

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