Chronomètre en C et précision

Résolu/Fermé
Cereale_killer - 3 déc. 2009 à 20:12
 Cereale_killer - 4 déc. 2009 à 18:08
Bonjour,

J'ai codé un chronomètre en C en utilisant la bibliothèque time.h, malgré l'utilisation de variable type float, la fonction ne me retourne que des valeurs type partie-entière.000000 secondes.
j'aimerais savoir s'il est possible que la fonction retourne des durées précises au delà de la virgule et non arrondies à la seconde la plus proche ?

Voici mon code :


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
time_t debut, fin ;
double difference ;
int touche ;

debut=time(NULL) ;


printf("Appuyez sur espace pour stopper le chronometre") ;

do
{
touche=getch() ;
} while(touche!=' ') ;

fin=time(NULL) ;
difference = difftime(fin, debut) ;
printf("\n\nIl s'est ecoule %lf secondes", difference) ;

return 0;
}


Merci.

6 réponses

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
3 déc. 2009 à 20:56
ahhh j'ai compris !

la fonction time() retourne des secondes ! Elle ne peut donc que renvoyer un nombre précis de secondes, mais pas de morceaux de secondes. La différence est donc arrondie, à cause de la fonction time() elle-même.

si tu veux faire un chronomètre il faut utiliser la fonction clock() ! http://www.cplusplus.com/reference/ctime/clock/
6