¿Cómo compilar código de temporizador en lenguaje C?
# incluir ltstdio.h gt
# incluir ltconio.h gt
# incluir ltwindows.h gt
# incluir ltstdlib.h gt
structure TM//Defina la estructura de tiempo, incluidas horas, minutos, segundos y 10 milisegundos.
{
int horas, minutos, segundos;
int hscd
} tiempo, tmp, total //se utiliza el tiempo; Visualización de tiempo, tmp se usa para almacenar el tiempo de la etapa anterior y el total registra el tiempo total.
int cnt
FILE * fout
//Cada llamada a la función de actualización equivale a 10 ms.
actualización nula(struct tm *t)
{
(*t). hscd; // unidad de tiempo de 10 ms más 1
cnt;
If ((*t). hscd==100) //Cuando el temporizador llegue a 1 s, lleve.
{
(*t). hscd = 0;
(*t). Segundos;
}
If ((*t).segundos==60) //Cuando el reloj llegue a un minuto, llevar.
{
(*t). segundos = 0;
(*t). Minutos;
}
If ((*t). Minutos==60) //El reloj llega a una hora, lleva.
{
(*t). minutos = 0;
(*t). hora;
}
if((*t). hora==24) (*t). Hora = 0;
//delay();
Sleep(10); //Sleep es una función proporcionada por Windows para pausar el programa en milisegundos, así que aquí haga una pausa de 10 ms. .
}
Visualización vacía (estructura tm *t)
{
//El resultado del tiempo se genera aquí, \r es un retorno de carro Sin saltos de línea, se ha actualizado la hora en la misma línea.
printf("d:", (*t). Horas
printf("d:", (*t). Minutos
printf("d:", (*t). segundos);
printf("d\r ", (*t). hscd);
//printf( "Ahora, presiona la tecla 'e' para detener el reloj...");
}
Void time_init() //Tiempo de inicialización
{
tiempo .horas = tiempo .minutos = tiempo .segundos = tiempo
}
Void get_total() //Calcular el tiempo total. .
{
total .hscd = CNT 100;
CNT/= 100
total.segundos = cnt 60
CNT/= 60;
total.minutos = cnt 60
CNT/= 60;
total.horas = cnt
}
int main()
{
char m;
hora _ init();
CNT = 0;
fout = fopen("timeout.txt", "w");
Printf("¡Ingrese para iniciar el cronómetro!\n");
mientras(1)
{
m = getch();
if (m! = '\r')/ / Lee una entrada, si es un retorno de carro, salta del segundo ciclo.
Printf("Error de entrada, ¡solo puede ingresar la tecla Enter! \n "
Otros
Break; }
Printf("¡El tiempo ha comenzado, pero puedes presionar Enter por etapas!\n "); /p >
If(kbhit()) //Compruebe la entrada del teclado aquí.
{
m = getch();
If(m = = ' \ r ')//Si es igual a Enter, entonces el temporizador termina y el bucle salta.
Descanso;
else If(m = = ' ')//Si es igual a un espacio, muestra el temporizador e inicializa el temporizador.
{
tmp = time; //Registra el resultado del último cronómetro.
fprintf(fout, "d:d:d:d\n", tmp.horas, tmp.minutos, tmp.segundos, tmp. hscd //Escribir archivo
time_init();
printf(" \ n ");
}
Otros
{
Printf("Error de entrada, ¡solo se admite la tecla Intro o la tecla de espacio! \n "
}
}
Actualización (tiempo de amperaje); //Actualizar temporizador
Display (amp time); //Mostrar tiempo del temporizador
}
tmp = time //Se escriben los últimos resultados; a un archivo.
fprintf(fout, "d:d:d:d\n",tmp.horas,tmp.minutos,tmp.segundos,tmp.hscd);
get_total () ; // Calcula el tiempo total, muéstralo y escríbelo en el archivo.
printf(" \nTiempo total: d: d: d \n ", total. horas, total. minutos, total. segundos, total.
Fprintf( fout); , "tiempo estadístico: d: d\n", total. horas, total. segundos, total
fclose(fout); guardado en el archivo timeout.txt en el directorio actual. ¡Presione cualquier tecla para finalizar!");
getch();
}
.