Während ich realisiere, dies ist wahrscheinlich eine von vielen identischen Fragen, ich kann nicht scheinen, wie man richtig zu verwenden std :: chrono. Das ist die Lösung, die ich zusammengeschustert habe.Korrekte Methode der Verwendung von Std :: Chrono
#include <stdlib.h>
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Time;
typedef std::chrono::milliseconds ms;
float startTime;
float getCurrentTime();
int main() {
startTime = getCurrentTime();
std::cout << "Start Time: " << startTime << "\n";
while(true) {
std::cout << getCurrentTime() - startTime << "\n";
}
return EXIT_SUCCESS;
}
float getCurrentTime() {
auto now = Time::now();
return std::chrono::duration_cast<ms>(now.time_since_epoch()).count()/1000;
}
Aus irgendeinem Grunde, dies gibt immer nur ganzzahlige Werte als die Differenz, die sie nach oben mit einer Rate von 1 pro Sekunde erhöht, sondern von einem beliebigen, oft negativ, Wert beginnend.
Was mache ich falsch? Gibt es einen besseren Weg, dies zu tun?
das Ergebnis von zwei integralen Argumenten miteinander unterteilt ist ein ganzzahliger Wert. – SergeyA
@SergeyA Das behebt das Ergebnis nicht als Float, aber es beginnt immer noch mit der falschen Nummer. – Arkathorn
'zurück std :: chrono :: duration_cast (now.time_since_epoch()). Count()/1000.0F;' –