Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Reno92 en 06 de Septiembre 2016, 11:33
-
Buenos días, me gustaría poder realizar un bucle while con un tiempo como factor de cierre del mismo bucle.
es decir,
while (t=40s){
printf("Maravilla perdida");
}
Algo así.
Gracias y saludos,
-
Hola!
Generar retardos en un programa es algo poco habitual (y algunas personas piensan que poco recomendable). Normalmente si quieres mostrar un mensaje y no pasar a otra cosa lo que haces es pedirle al usuario que pulse una tecla para continuar.
Aún así si quisieras generar un retardo puedes intentarlo con la función delay. Ejemplo:
#include<stdio.h>
#include<stdlib.h>
main()
{
printf("Maravilla perdida");
printf("El programa terminará en 10 segundos.\n");
delay(10000);
return 0;
}
O bien introduciendo un bucle que no haga nada (al poner el ordenador a contar, tarda un tiempo que es el retardo). Esto es una forma un poco bruta de hacerlo y en general no se recomienda pero hay quien lo hace.
#include<stdio.h>
main()
{
int c = 1, d = 1;
printf("Maravilla perdida");
for ( c = 1 ; c <= 32767 ; c++ )
for ( d = 1 ; d <= 32767 ; d++ )
{}
return 0;
}
Saludos!
-
Buenas Krall,
He compilado el programa que me has enseñado y me da problemas con la función delay. El problema es que estoy usando el software de linux ubuntu y la mitad de las librerias y funciones válidas para windows en linux no funcionan. Si pudieras asesorarme sobre las instalacion de complementos o cualquier consejo te lo agradecería.
Mira te muestro el programa,
#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("Maravilla perdida");
printf("El programa terminará en 10 segundos.\n");
delay(10000);
return 0;
}
delay.c: In function ‘main’:
delay.c:33:5: warning: implicit declaration of function ‘delay’ [-Wimplicit-function-declaration]
/tmp/ccOiCXXE.o: En la función `main':
delay.c:(.text+0x28): referencia a `delay' sin definir
collect2: error: ld returned 1 exit status
Ha fallado la compilación.
Muchas gracias por la respuesta,
Saludos,
R
-
Hola.
Me meto por aquí un poco.
Prueba usando la función Sleep().
#include <stdio.h>
#include <windows.h>
// para linux usar #include <unistd.h>
int main()
{
int i = 0;
printf("Maravilla perdida\n");
printf("El programa terminara en 10 segundos.\n");
for(i=0; i<10; i++){
Sleep(1000);
printf("%i\n", i+1);
}
printf("Pasaron los 10 segundos?");
return 0;
}
Saludos. ;D