Autor
|
Tema: Reloj en C (Leído 27,832 veces)
|
sinsombra_666
Desconectado
Mensajes: 14
|
Bueno el caso es que creeo que esta bien, el problema es que no e consegido que el reloj deje de mostrar sus horas y minu y segundos anteriores, en la maldita shell haber si alguien me puede echar una manita. #include <stdio.h> #include <stdlib.h> void reloj(int h,int m,int s){ int i,a; for (; ;){ for (a=0; a<=61; a++){ sleep(1000); s++; if (s==60){ m++; s = 0; } if (m==60){ m = 0; h++; } if (h==24){ h = 0; } } } } main() { reloj(23,59,45); }
|
|
|
En línea
|
|
|
|
Ari Slash
|
hola indeta un poco tu codigo no se entiende nada sino me equivoco la funcion sleep esta en windows.h? como te funciona?
para borrar pantalla puedes incluir la biblioteca conio.h y usar la funcion clrscr() lo unico malo de esta solucion es que no es portable te funcionara solo bajo windows tambien puedes usar system("cls")
y para linux puedes usar system("clear"), creo que por esto te funciona sleep sin la biblioteca porque lo usas en linux
saludos
|
|
« Última modificación: 25 Septiembre 2010, 19:47 pm por Ari-Slash »
|
En línea
|
|
|
|
Mr.Blue
|
getch esta en conio.h. pero es mejor usar getchar (); que esta en stdio.h sleep no esta en stdlib? o en windows?
for (a=0; a<=61; a++)
aca deberia ser a<61 o a<=60
PD: la hora no va a ser la correcta, mas q nada vas a ver el tiempo q el el programa esta corriendo.
|
|
« Última modificación: 25 Septiembre 2010, 20:02 pm por Sr.Blanco »
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
sleep() es no es standard. Saludos
|
|
|
En línea
|
|
|
|
sinsombra_666
Desconectado
Mensajes: 14
|
umm me estays liando con las librerias, el codigo se copila y ejecuta perfectamente con esas librerias, pruevenlo en devc++9.9.2, lo de clrscr ya lo e provado, ya veo que no se entiende bien el codigo : #include <stdio.h> #include <stdlib.h> void reloj(int h,int m,int s){ // aqui declaro la funcion con tres var tipo int hora, minuto y segundo int i,a; // declaro var locales para mi funcion, que se utilizan en los bucles for (; ;){ // creeo un bucle infinito como padre for (a=0; a<=61; a++){ sleep(1000); // hasta que no pase 1 segundo s o segundo no aumentara en 1 s++; if (s==60){ // cuando s o segundo sea 60 aumenta m, minuto y s, segundo vuelve a cero, infinitamente m++; s = 0; } if (m==60){ // cuando m, minuto llege a 60 vuelve a 0 y aumenta en 1 h, hora m = 0; h++; } if (h==24){ // mas de lo mismo, ya si se comprende no h = 0; } } } } main() { reloj(23,59,45); // invoco a la funcion h, hora m, minuto s, segundo } // Creo que ya quedo claro
mas sobre el borrado de pantalla; El problema con estas funciones es que al hacerlo en tiempo real (es obligatorio no se puede pausar) printf si que manda las var por pantalla, pero no se ven. ejemplo; clrsrc(); printf("%i %i %i\n",h ,m ,s ); // no se veria nada
|
|
|
En línea
|
|
|
|
Ari Slash
|
no le has asignado ningun valor a la variable i
edito: perdon por este comentario, me confundi estaba pensando en php xD
|
|
« Última modificación: 26 Septiembre 2010, 00:51 am por Ari-Slash »
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
Es que el código tiene montones de fallos que tu compilador nunca te dirá que están mal, porque el que usas es una birria. Saludos
|
|
« Última modificación: 25 Septiembre 2010, 20:43 pm por Horricreu »
|
En línea
|
|
|
|
sinsombra_666
Desconectado
Mensajes: 14
|
no le has asignado ningun valor a la variable i noo, el codigo en principio no se parecia nada a este, vamos con el que empeze por eso tal vez deje hay la var i que antes se utilizava en otro bucle for. Es que el código tiene montones de fallos que tu compilador nunca te dirá que están mal, porque el que usas es una birria.
Explicate a mi no me vale que me digas que tiene montones de errores y que el copilador que lleva dev es malo, si no explicas porque ?¿?¡
|
|
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
A ver, por ejemplo: - Declaras main() en vez de int main(). En los compiladores antiguos no te dará error pero en los actuales, y buenos, sí. Recuerda que debe retornar un entero.
- No sé porque incluyes la librería stdlib. No la necesitas.
- Utilizas una función de la librería conio sin haber declarado dicha librería.
- Tampoco sé porque no te da error en la función sleep().
Saludos
|
|
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.513
El Dictador y Verdugo de H-Sec
|
No se pero te recomiendo que leas un tuto o un libro porque al parecer fuiste recogiendo codigo... es bien extraño que alguien añada una libreria que no va a utilizar y deje fuera otra que si necesita.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Reloj - Móvil
Dispositivos Móviles (PDA's, Smartphones, Tablets)
|
ANDREAS10
|
0
|
1,889
|
1 Junio 2011, 13:29 pm
por ANDREAS10
|
|
|
El reloj sólo va de las 13:30 a las 14:30
Dudas Generales
|
Azhag_el_Carnicero
|
3
|
3,979
|
28 Diciembre 2011, 19:23 pm
por Azhag_el_Carnicero
|
|
|
[Batch] Reloj
« 1 2 »
Scripting
|
Geormarsch
|
13
|
8,268
|
19 Enero 2012, 09:25 am
por $Edu$
|
|
|
El reloj de los 10 millones
Noticias
|
wolfbcn
|
1
|
2,249
|
10 Septiembre 2012, 21:12 pm
por Martin-Ph03n1X
|
|
|
Reloj checador
Programación Visual Basic
|
_vicho_
|
0
|
2,002
|
10 Mayo 2013, 20:02 pm
por _vicho_
|
|