Odliczanie czasu w sekundach - time.h

0

Próbowałem napisać funkcje, która odliczała by czas w sekundach.
Ma ona działać tak:
W jej argumencie pobieram czas do którego ma ona liczyć (np: 30 - liczy do 30 sekund).
Jak już policzy zwraca 1 i chcę sprawić by wtedy zaczęła liczyć od nowa.
W przeciwnym wypadku zwraca 0.

Pisałem na innym forum i tam poradzili by spróbować z klasami.
Oto kod, który nie za bardzo działa.

#include <iostream>
#include <time.h>

class Data
{
private:
	clock_t current_time;
public:
	int Time(int limit_seconds)
	{
	   current_time = clock() / CLOCKS_PER_SEC;
	   if(current_time == limit_seconds)
	   { 
            current_time = 0;
	    std::cout << current_time;
            return 1;
	   }
	   else
	   {
            std::cout << i;
            return 0;
	   }
	}
};

Tak ją wywołuję:

int main()
{
	Data time;
	while(time.Time(9) == 0)
        {
	 time.Time(3);
	}
	system("pause");

        return EXIT_SUCCESS;
}
0

W jej argumencie pobieram czas do którego ma ona liczyć (np: 30 - liczy do 30 sekund).
Jak już policzy zwraca 1 i chcę sprawić by wtedy zaczęła liczyć od nowa.

Czyli w tej funkcji chcesz zrobić aby program zatrzymał się na określoną liczbę sekund i zwrócił 1 jeśli skończy liczyć. Sądze ,że zwykły sleep wystarczy do tego.

0

Nie chce aby program się zatrzymał. Funkcja ma liczyć sekundy od uruchomienia i po odpowiednim czasie wyzerować zmienną z naliczonym czasem - czyli zacząć liczyć od nowa.

0

Coś tu się nie zgadza.
Załóżmy że wywołujesz funkcje z parametrem 10 o godzinie 1940.
Więc wg ciebie powinna zwracać 0 przy każdym kolejnym wywołaniu do godziny 1950 po czym się zresetować.
Czyli 1 mikrosekunda po 1950 funkcja znowu powinna zwrócić 0 bo się zresetowała.
Czyli funkcja powinna zwracać 0 zawsze ponieważ nigdy nie trafisz dokładnie w odpowiedni czas.

0

Mniej więcej tak ale nie mikrosekunda tylko cała sekunda.

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