sleep() nie działa w pętli

0

Witam!

Mam taki kod:

#include<iostream>
using namespace std;

int main()
{

for(int index=1;index<=10;index++)
{
cout<<index;
sleep(2);
}

}

Chcę, aby program wypisywał wartości zmiennej index w odstępach czasowych w pętli for, jednak działanie programu jest takie, że muszę odczekać dwadzieścia sekund, a następnie pokazują się wszystkie wartości naraz. Dlaczego tak się dzieje? Program piszę w systemie Ubuntu i korzystam z kompilatora g++.

1

Strumienie chodzą z buforowaniem, cout<<index<<flush; albo cout<<index<<endl;, które wypisuje znak nowej linii i flushuje automatycznie.

0

Nie tylko iostream lata z buforowaniem. cstdio też i w przypadku cstdio trzeba zrobić fflush(stdio) ZTCW.

0

Od kiedy to sleep nie chodzi w petli?
podałeś:

Sleep(2);

czyli 0.0002 sekundy,

Sleep(1000) to jedna sekunda czyli: Sleep(20000) to 20 sek

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