Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como poner un tiempo especifico a cada pantalla

Estas en el tema de Como poner un tiempo especifico a cada pantalla en el foro de C/C++ en Foros del Web. Hola estoy programando una practica que me pidieron que hiciera, lo que no recuerdo es como hacer para que una pantalla se vea un determinado ...
  #1 (permalink)  
Antiguo 29/08/2012, 18:36
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Como poner un tiempo especifico a cada pantalla

Hola estoy programando una practica que me pidieron que hiciera, lo que no recuerdo es como hacer para que una pantalla se vea un determinado numero de segundos despues haga clearscreen y se vea la que sigue, y asi sucesivamente sin necesidad de que el usuario presione "enter" para que el programa continue con algo que ya esta precargado que continuara.
Alguien me puede ayudar a encontrar esta función?
Tambien no quiero que sea en especifico un numero de segundos quiero que varie como con un random solo que no se que funcion utilizar espero y alguien me pueda ayudar, gracias!!
  #2 (permalink)  
Antiguo 29/08/2012, 19:53
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Como poner un tiempo especifico a cada pantalla

Hola! no aclaras mucho: SO, lenguaje.... tenes la funcion sleep


Saludos
  #3 (permalink)  
Antiguo 29/08/2012, 20:10
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como poner un tiempo especifico a cada pantalla

Es en lenguaje "C" son sistemas operativos me piden que imprima en pantalla un proceso y que posteriormente el que sigue pero con un numero determinado de segundos solo que no se como hacer para que el programa se vaya corriendo solo y que funcion debo utilizar para poder hacer que menciono.
Me mencionas la funcion sleep sirve para eso que menciono?
Gracias por responder espero respuesta
  #4 (permalink)  
Antiguo 29/08/2012, 20:19
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Como poner un tiempo especifico a cada pantalla

Lo que hace sleep es "parar/dormir" el programa por un determinado tiempo(el tiempo lo elegis vos). En linux es sleep y en windows es Sleep sino me equivoco(googlea el tema)...


Saludos
  #5 (permalink)  
Antiguo 30/08/2012, 01:21
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Como poner un tiempo especifico a cada pantalla

Hola.

Otra opción, independiente del SO, puede ser:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <stdlib.h>
  4.  
  5. void await(int);
  6.  
  7. int main(){
  8.   int i, s;
  9.  
  10.   srand(time(NULL));
  11.   for (i=0; i < 10; i ++) {
  12.     s = 1 + rand() % 5;  // (1 a 5)
  13.     printf("proxima linea en %d segundos\n",s);
  14.     await(s);            // espera 's' segs.
  15.   }
  16. }
  17.  
  18. void await(int seg){
  19.   time_t t1,t2;
  20.   (void)time(&t1);
  21.   do
  22.     (void)time(&t2);
  23.   while ((int)t2-t1 < seg);
  24. }

Saludos.
  #6 (permalink)  
Antiguo 30/08/2012, 15:35
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como poner un tiempo especifico a cada pantalla

Buenas,

Esa última forma que dice ecfisa no me parece muy buena porque estás realizando lo que se llama una "espera activa", es decir, el programa sigue ejecutándose y realizando acciones que no sirven para nada y que quitan tiempo a otros procesos del sistema operativo.

Lo mejor es usar sleep si estás en linux o la función que corresponda si estás en Windows, que duerme el proceso el tiempo indicado sin consumir tiempo del procesador.

Si no te importa que consuma tiempo utiliza si quieres esa función, pero ten en cuenta que no es eficiente.

Un saludo.

Etiquetas: cada, especifico, funcion, pantalla, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:25.