2011-12-19 43 views
12

Duplicar posibles:
How to measure time in milliseconds using ANSI C?
How can I get the Windows system time with millisecond resolution?Cómo obtener la hora actual en milisegundos programación en C

Queremos calcular el tiempo que el jugador ha tomado para terminar el juego . Pero con time.h solo pudimos calcular en segundos. pero eso no es exacto ¿Es posible obtener el tiempo en milisegundos? y cuál es el%? para imprimir?

+2

Duplex exactos http://stackoverflow.com/questions/361363/how-to-measure-time-in-milliseconds-using-ansi-c – niko

Respuesta

15

respuesta rápida

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

int main() 
{ 
    clock_t t1, t2; 
    t1 = clock(); 
    int i; 
    for(i = 0; i < 1000000; i++) 
    { 
     int x = 90; 
    } 

    t2 = clock(); 

    float diff = ((float)(t2 - t1)/1000000.0F) * 1000; 
    printf("%f",diff); 

    return 0; 
} 
+15

Pensé que 'clock' da como resultado el tiempo de CPU utilizado, no el tiempo real . – cnicutar

+14

Este código, aunque posiblemente sea correcto en algunos sistemas, no siempre funcionará. Debería usar CLOCKS_PER_SEC en lugar de código rígido 1000000. – jarmod

+1

@jarmod nice pickup: se requiere especialmente en Windows bajo MS VC++ donde CLOCKS_PER_SEC está establecido en 1000. –

17

No hay forma portátil de obtener una resolución de menos de un segundo en C estándar Lo mejor que puede hacer es usar la función POSIX gettimeofday().

2

Si estás en un sistema Unix, utilice gettimeofday y convertir el resultado de microsegundos a milisegundos.

Cuestiones relacionadas