genauere Stoppuhr
-
Hi all,
Habe soeben mein C++ Selbststudium beendet. Musste hierfür mehrere fette Bücher lesen und trotzdem fehlen mir immer wieder informationen wenn ich bestimmte Dinge von der STL und Standardfunktionen nutzen möchte. Zum Beispiel will ich momentan die Standardfunktion ctime nutzen. Ich habe zwar Informationen über diese Standardfunktion aber die sind leider mehr als dürftig.
Was ich nun wissen will:
Gibt es nun irgendwo eine Quelle wo mann sich gezielt über diese Dinge informieren kann?In diesem Fall brauche ich umfangreiche Infos über die Standardfunktion ctime und Ihre Methden.
Ich kann zwar eine Stoppuhr programieren aber vielleicht ist ja eine noch genauere Sekundenausgabe möglich. Kriege keine zehntel sekunden hin.
-
HI,
in der msdn von microsoft kannst du alle funktionen genauestens nachschaun (zumindest wenn du vc von ms benutzt)
diese gibt es online msdn.microsoft.com oder zum installieren von einer cd!
zu deinem problem -> wenn du die funktionDWORD timeGetTime();
aus der MMSystem.h (WinMM.lib musste auch noch einbinden) nimmst dann bekommt du tausenstel sekunden !
das geht alles nur mit vc von ms soweit ich weis !hoffe ich habe dir geholfen !
edit: von borland & co dürfte es jedoch auch eine solche dokumentation ala msdn geben!
-
Jo, grade Systemzeit etc. wirst mit C++ Literatur hinaus ned fuendig werden, weils kein C++ Standard, sondern Betriebssystem Thematik ist.
Habe soeben mein C++ Selbststudium beendet. Musste hierfür mehrere fette Bücher lesen und trotzdem fehlen mir immer wieder informationen wenn ich bestimmte Dinge von der STL und Standardfunktionen nutzen möchte.
C++ und STL sind nur dein Werkzeugkasten !!!
wenn an nem auto rumschrauben willst, brauchst zwar das werkzeug, aber auch wissen ueber die Anatomie des entsprechenden Autos. Wer sein leben lang am alten Opel rumgeschraubt hat, hat zwar auch gewisse zusaetzliche Basiskenntnisse, muss aber, wenn er nun an nen neuen BMW kommt, noch ne Menge andere Dinge einfach nachschauen !Trotz studium von C++ wirst dich also noch mit Betriebssystemlektuere Also API s(WINAPI, POSIX Standard ) auseinandersetzen muessen, und mit Bibliotheken von den entsprechenden Platformen. DirectX OpenGL QT MFC etc muss man auch lernen, wenn man sie benutzt.
Ciao ...
-
yup @ulath, das war hilfreich. Thx
-
http://www.cppreference.com/
http://www.cplusplus.com/ref/
http://www.cplusplus.com/
http://www.programmersbase.net/Content/Cpp/Default.htm
usw.
-
Standard-C(++) bietet nix genaueres als sekunde, alles andere ist Platformabhängig.
Das genaueste unter Windows ist QueryPerformanceCounter, ist aber nicht garantiert das es wirklich da ist (mir ist aber noch keine Intel-Platform untergekommen, auf der's nicht geht)
-
Standard-C(++) bietet clock an, das aber nicht funktionieren muss und wenn, dann muss es nicht unbedingt eine Auflösung von einer Millisekunde haben.
allerdings gibt es die Konstante CLOCKS_PER_SEC, die die Genauigkeit wiederspiegelt.#include <ctime> using namespace std; int main () { clock_t start = clock(); if (start == clock_t(-1)) cerr << "Zeitmessung nicht möglich\n"; for (int i = 0; i < 1000000; ++i) do_something(); clock_t end = clock(); if (end == clock_t(-1)) { cerr << "Intervall zu groß!\n"; } else { cout << "Die Schleife hat " << double(t2-t1)/CLOCKS_PER_SEC << " Sekunden benötigt\n"; } }
-
Stimmt - clock ist ja noch da
-
aber so weit ich mich erinern kann ist clock in multithread umgebungen (oder war das mulithread programmen?) ungenau
-
Dimah schrieb:
aber so weit ich mich erinern kann ist clock in multithread umgebungen (oder war das mulithread programmen?) ungenau
Clock kann in einer Multithread Umgebung zu ungenauigkeiten führen, z.B. wenn das Programm keine Prozessorzeit bekommt, steht auch clock. Daher hat man mal die systemspezifischen Zeiten eingeführt.