2016-10-11 3 views
-1

Ich habe eine Funktion erstellt, die Sekunden zählt, nach der Wahl eines Benutzers. Es funktioniert alles, aber kann es intelligenter und effizienter gemacht werden? Weil es sehr schwer und langsam erscheint. Gibt es eine Lib, die dieses Problem löst? Oder wie können wir es umgehen?C++ zweiter Zähler

Hier ist mein Code:

#include <ctime> 
#include <iomanip> 
#include <iostream> 

using namespace std; 

int main() { 
    double a,c, x,b; 

    int nutid=0; 

    cout<<"Please enter a number: "; 
    cin>>a; 
    x = time(0); 
    c = a-1; 

    while (true) { 
     if (!cin) { 
      cout<<"... Error"; 
      break; 
     } 
     else { 
      b=time(0)-x; 

      if(b>nutid){ 
       cout<<setprecision(11)<<b<<endl; 
       nutid = b+c; 
      } 
     } 
    } 

    return 0; 
} 
+4

Verwenden 'std :: chrono' Siehe Referenz hier http://en.cppreference.com/w/cpp/chrono – PRP

+0

Was würden Sie nicht nur "Schlaf (1)" auf jeder Iteration der Schleife? – selbie

+0

Oh! Danke - dachte nicht nur an den Schlaf einer Zählmethode: D vielen Dank – Holycrabbe

Antwort

0

Sie können Zeit mit der Bibliothek <chrono> (seit c++11)

Beispiel messen:

#include <iostream> 
#include <chrono> 
using namespace std; 
using namespace chrono; 

int main() { 
    auto start = high_resolution_clock::now(); 

    // your code here 

    auto end = high_resolution_clock::now(); 
    // you can also use 'chrono::microseconds' etc. 
    cout << duration_cast<seconds>(end - start).count() << '\n'; 
}