Zeitfunktion
-
Wie würdet ihr folgende Funktion schreiben. Sie sollte ungefähr so aussehen:
void timer(short &var, short millisecs);Und jetzt soll alle "millisecs" Millisekunden zu "&var" eine "1" addiert werden?
Wie würdet ihr das lösen? Ich hab eigentlich nich so n Plan von <ctime> und Zeit allgemein. Mit einer static Vriable vll.? Und "time(0)"?
Würde mich über eure Vorschläge freuen.MfG
Stromberg
-
Darfst du Betriebssystemfunktionen verwenden? Wenn ja, dann initalisiere dir doch einen Timer mit der entsprechenden API. (In Windows könntest du den Multimedia Timer verwenden. Link zu einem Beispiel)
-
Nein, es sollte alles über Standard C++ laufen.
MfG
Stromberg
-
Da bin ich leider auch nicht so firm drin, aber vielleicht hilft dir dieser Link mit der Funktion gettimeofday() weiter... da time() soweit ich weiß nur sekunden genau läuft.
Gruß
Tobi
-
Das hier wäre schon mal ein anfang:
#include <iostream> #include <ctime> using namespace std; void timer(short &var, short secs); int main() { short a=0; while(1) { timer(a,2); if(a==2) cout << "2 Sec. \n"; } return 0; } void timer(short &var, short secs) { static long save_time = 0; static short save_secs = 0; //Sekunden speichern, sodass nicht bei jedem Funktionsaufruf neuer Wert entsteht. if(save_secs == 0) { save_secs = secs; } //Zeit Startpunkt setzen if(save_time == 0) { save_time = time(0); } else { if(time(0) > (save_time + save_secs)) { ++var; save_time = 0; save_secs = 0; } } }Aber das geht halt jetzt leider nur mit ganzen Sekunden? Kann mir vll. jemand sagen wie ich dass nun mit Millisekunden machen soll?
Soll ichs umschreiben, ganz neu schreiben....? Wer hat Ideen?MfG
Stromberg
-
war nachtunsinn..
noch ein link zu einer damaligen idee von volkard
http://www.c-plusplus.net/forum/viewtopic-var-t-is-126011-and-highlight-is-millisekunden.html
-
Kann mir vll. jemand sagen wie ich dass nun mit Millisekunden machen soll
Mit ISO C++: garnicht.
Könntest du vielleicht die Forderung "es sollte alles über Standard C++ laufen" etwas aufweichen und in ein (viel realistischeres) "es sollte halbwegs portierbar sein" umwandeln?
Dann könntest du nämlich z.B. die Boost verwenden: http://www.boost.org/doc/libs/1_35_0/doc/html/date_time/posix_time.html#ptime_from_clock