Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

reloj en c (hecho por mi) y una duda

Death Magnetic

Bovino adolescente
Desde
5 Nov 2008
Mensajes
58
pues tengo una duda, para hacer un reloj se es necesario conttar con una estructura que jala la hora del sistema a unas variables.

para hacer que el reloj funcione se tiene que hacer un ciclo infinito, que los segundos aumenten y unos cuantos if y un sleep que dura 1 segundo para que cambie el segundo,

codigo fuente
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void funcion(void);
struct time t;
struct date d;

void main()
{
clrscr();


gettime(&t);
getdate(&d);
funcion();
}


void funcion(void)
{
int hora,ti,min,seg,c;
hora=t.ti_hour;
min=t.ti_min;
seg=t.ti_sec;
while (c>=10){
seg++;
clrscr();
if(seg==60){min++;seg=0;}
if(min==60){hora++;min=0;}
if(hora==12){hora=1;}
if (hora<=12) printf("%d/%d/%d son las %d:%d:%d\n", d.da_day,d.da_mon,d.da_year,hora,min,seg);
else{
hora=hora-12;
printf("%d/%d/%d son las %d:%d:%d\n", d.da_day,d.da_mon,d.da_year,hora,min,seg);
}
sleep(1);
}}
el problema es que como es un ciclo infinito no me deja hacer nada mas que eso, incluso ya lo puse en una funcion que no regresa valor ni pide valor y no puedo, alguna idea?, lo que quiero es saber como hacer otra cosa ademas del reloj ejemplo un printf o algo asi sencillo(despues hare que haga lo que en verdad quiero que es como una lista para una empresa de asistencia)

alguna sugerencia?
 
jaja bueno es una sugerencia, pero se supone que el objetivo es hacer eso pero igual me fue gracioso
 
Cancela el ciclo mediante una entrada desde el teclado (o el mouse), al pulsar ESC por ejemplo.

Podrías cancelarlo antes o después de está instrucción (depende de cómo se comporte):

sleep(1);

Necesitarías revisar el buffer de entrada y si está vacío que "duerma" y continúe, caso contrario que haga lo que necesitas.
 
gracias al fin una respuesta mas acorde a lo que queria, vere que puedo hacer
 
wow! me gusto un buen tu reloj!!!

y ahi va mi aporte:

Puedes "pausar" el programa metiendo un menu que te invoque a una "pausa" al reloj
o si de plano quieres cancelar, puedes meter un "exit" en el ciclo while

mmmm aunque me late mas la idea de meter la pausa con una funcion...
 
Volver
Arriba