ďťż

Ładny brzuch

#include<iostream.h> #include<stdlib.h> #include<time.h> int main(){ for(int i=1;i<=10;i++){ sleep(1); cout << ">"; } }
Ten prosty kawałek kodu C++ ma za zadanie wstawić 10 razy znak ">" odczekując pomiędzy kolejnymi wywołaniami funkcji cout jedną sekundę. Jednak problem polega na tym, że program zasypia na początku na kilka sekund a potem automatyczne wstawia 10 znaków. Ktoś może wie jaka jest przyczyna (i rozwiązanie :) ) takiego działania programu? Proszę o pomoc. Zaznaczam, żę programuje na Debianie w g++.



.... ... sleep(1000); // wartosc funkcji jest w milisekundach .... ....I tylko tyle

A jak ja prpboje to skompilowac to mi mowi ze nie ma iostream.h
No wiec daje samo iostream (przed tym dyrektywa oczywiscie) a potem using namespace std; i mi mowi ze sleep jest undeklared. O co chodzi (mam dev-c++)
Użytkownik gates22 edytował ten post 08 luty 2008, 16:22
Musisz wymusić opróżnianie bufora po każdym cout
// u mnie działa _sleep(1);
Użytkownik Radek edytował ten post 08 luty 2008, 19:24



A jak ja prpboje to skompilowac to mi mowi ze nie ma iostream.h
No wiec daje samo iostream (przed tym dyrektywa oczywiscie) a potem using namespace std; i mi mowi ze sleep jest undeklared. O co chodzi (mam dev-c++)


#include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]) { for(int i=1;i<=10;i++){ Sleep(1000); cout << ">"; } }
Sprawdzone, dziala pod devem.


#include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]) { for(int i=1;i<=10;i++){ Sleep(1000); cout << ">"; } }
Sprawdzone, dziala pod devem.

Super dziala dz :)

Jak napisał Radek - musisz wymusić opróżnianie bufora po każdym cout. A robi się to tak:
cout << ">" << flush;

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •