2013-03-13 4 views
1

J'essaye d'attraper à quelle vitesse un nombre est tourné. J'ai un programme où le compteur commence à 0.
Chaque fois que l'utilisateur clique sur le bouton "ajouter 1". Il incrémente le compteur de 1.
Le compteur atteint 255. Après 255, il revient à 0.
Maintenant, je veux afficher le nombre de secondes qu'il a fallu de 0 à incrémenter à max et revenir à 0. Temps pour l'ensemble révolution. Il va différer sur la rapidité avec laquelle l'utilisateur a cliqué sur le bouton.Différence de temps C++ entre 2 valeurs

Ce que je dois savoir, c'est comment utiliser une minuterie pour cela? Le programme est complet juste le minuteur entre la révolution complète des nombres dont j'ai besoin de coder.

J'utilise

#include <time.h> //* clock_t, clock, CLOCKS_PER_SEC 

conseils S'il vous plaît. Je vous remercie.

int counter; 
counter = pkt[0]; 

cout << endl; 

cout << counter << endl; 

if(counter == 1) 
{ 
    cout << "revolution" << endl; 
} 
+0

fois. fonction clock(). mais ça ne me donne pas ce que je cherche. – madziikoy

+0

[Copie possible] (http: // stackoverflow.com/q/307596/1084416) –

+1

@madziikoy Vous ne voulez probablement pas 'horloge', car cela vous donne (ou est censé vous donner) le temps CPU, pas l'horloge murale. 'time()' retournera l'heure de l'horloge murale, et 'difftime' vous indiquera l'intervalle entre les deux temps de l'horloge murale. –

Répondre

0

difftime peut être utilisé pour obtenir la différence entre deux instances de temps. difftime L'exemple de code sur la page donne ce que vous cherchez.

+0

Oui, j'ai essayé mais je veux que la minuterie démarre quand le compteur est à 0 et s'arrête à 255. Et calcule combien de temps cela a pris. – madziikoy

+1

"_I tried_" Eh bien, ** quoi ** as-tu essayé? Aucun code essayé n'est disponible dans votre question. – uba

+0

Je viens de mettre à jour ma question. Merci :) – madziikoy

3

Si vous pouvez utiliser C++ 11, <chrono> pourrait être un bon choix.

Il contient:

Durées

Ils mesurent des intervalles de temps, comme: une minute, deux heures ou dix millisecondes. Dans cette bibliothèque, ils sont représentés avec des objets du modèle de classe de durée, qui couple une représentation de compte et une précision de période (par exemple dix millisecondes a dix comme représentation de compte et millisecondes comme précision de période).

points de temps

Une référence à un point précis dans le temps, comme son anniversaire, l'aube d'aujourd'hui, ou quand le prochain train passe. Dans cette bibliothèque, les objets du modèle de classe time_point l'expriment en utilisant une durée relative à une époque (qui est un point fixe dans le temps commun à tous les objets time_point utilisant la même horloge).

Horloges

Un cadre qui se rapporte un point de temps en temps physique réel. La bibliothèque fournit au moins trois horloges fournissant des moyens d'exprimer l'heure actuelle sous la forme d'un point temporel: system_clock, steady_clock et high_resolution_clock.

0
#include <ctime> 
time_t start = time(NULL); 

vous donnera le nombre de secondes écoulées depuis 00:00 heures, le 1er janvier 1970 UTC. Si vous mettez cela au début du code que vous voulez garder en mémoire, vous avez simplement besoin d'obtenir le temps à nouveau quand vous voulez calculer combien de temps il a fallu pour effectuer une révolution complète. Ensuite, faites la différence. difftime peut vous aider à faire la différence. Ne pensez pas à cela comme une minuterie qui fonctionne vraiment. Vous obtenez juste le temps avant et après la révolution et de trouver la différence.