Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Odmierzanie czasu w tle

Ostatnio zmodyfikowano 2010-08-23 21:15
Autor Wiadomość
hans
Temat założony przez niniejszego użytkownika
[C++] Odmierzanie czasu w tle
» 2010-08-23 18:21:11
Witam, jak w temacie, czy mozna w czysty c++ wlaczyc na poczatku programu stoper i uruchamiac jakies funkcje po okreslonym czasie. Pisze prostego konsolowego węza i chcialbym zebym malinki pojawialy sie po okreslonym czasie. Przejrzalem biblioteke time.h i nie znalazlem odpowiedzi na moje pytanie, w googlach tez nic sensownego nie ma o takim czyms w czystym c++. Zaznaczam, że jestem początkującym :), z góry dziękuję za pomoc.
P-21129
Shell32
» 2010-08-23 18:28:42
tak np

C/C++
#include <iostream>
#include <conio.h>
#include <time.h>

using namespace std;

int main()
{
    // tutaj zmienna do czasu
    int Timer; // albo unsigned int Timer;
    // i teraz funkcja
   
    if( Timer == 6000 ) // po szejsciu sekundach
    {
        //np
        Timer = 0;
        cout << "Minelo 6 sekund!" << endl;
    }
   
   
    // i to tyle :)
   
}
mam nadzieje ze jakos pomoglem,,,
to sa podstawy
P-21130
ison
» 2010-08-23 18:30:31
@Shell32: że jak to ma działać? :D

@hans:
co rozumiesz przez "czysty C++"?
Według mnie 2 najprostsze sposoby na rozwiązanie twojego problemu:

header:
C/C++
#include <windows.h>
kod:
C/C++
int zmienna = GetTickCount();
GetTickCount() zwraca liczbę milisekund które upłynęły od włączenia systemu
przykładowo jeśli chcesz odmierzyć czas:
C/C++
int czasA = GetTickCount();
//... różne czynności
int czasB = GetTickCount();
printf( "Wykonywanie zajęło %d milisekund\n", czasB - czasA );

inny sposób
header:
C/C++
#include <time.h> //lub <ctime>
funkcja:
C/C++
int zmienna = clock();
funkcja podobna do GetTickCount() tylko że zwraca liczbę milisekund od włączenia programu (a nie od włączenia systemu)
Osobiście polecam drugi sposób, podobny efekt a zyskujesz na przenośności programu (bo nie korzysta z biblioteki windows.h)
P-21131
DejaVu
» 2010-08-23 19:02:09
Proponuję:
C/C++
bool koniec = false;
for( int licznik = 0; !koniec; licznik++ )
{
    if( licznik % 600 == 0 )
    {
        //INFO: dostaw klocek
    } //if
   
    //INFO: animacja
    //...
} //for
P-21133
hans
Temat założony przez niniejszego użytkownika
» 2010-08-23 21:15:21
Dziękuje za odp, zamykam temat
P-21141
« 1 »
  Strona 1 z 1