Autor
|
Tema: Ayuda con delay entre letras (Leído 3,787 veces)
|
defalt_
Desconectado
Mensajes: 3
|
Buenas, tengo un problema y no se por que me pasa, el tema es que tengo que hacer un trabajo para el instituto y necesito hacer mini-delays entre cada letra de una cadena como para hacer una animación de barrido. En consola de Windows me funciona perfectamente, el problema es que los ordenadores de mi instituto son linux, lo he probado en consola de linux y resulta que no funciona igual, en vez de hacer cada delay entre letras, hace la espera al principio y despues imprime de golpe la frase. Al principio pense que seria por el tiempo de reloj de cada procesador al ser diferentes ordenadores pero tambien lo intente en entorno linux en mi propio ordenador y sucede lo mismo que en mi instituto. ¿No debería funcionar igual o hay algo que hace diferente cada consola al ejecutar? Os dejo el codigo por aqui abajo (el tiempo del segundo bucle esta medido, ya os digo, si lo copiais y lo probais en Windows funciona perfectamente): #include <stdio.h> #include <string.h> int main(){ int i,a; char frase[41]={"Esto es una prueba de pausas entre letras"}; for(i=0;i<41;i++){ for(a=0;a<31250000;a++){} a==0; } return 0; }
|
|
« Última modificación: 4 Noviembre 2017, 02:53 am por defalt_ »
|
En línea
|
|
|
|
JavierScars
Desconectado
Mensajes: 116
|
time.h te puede ayudar...
-A parte no estas haciendo a = 0 si no que estas comparando a con 0... eso devuelve true...
|
|
« Última modificación: 4 Noviembre 2017, 03:13 am por JavierScars »
|
En línea
|
Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad, y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.
|
|
|
defalt_
Desconectado
Mensajes: 3
|
Nada, tambien probe añadiendo time.h y sigue sin funcionar, lo raro es que funcione en windows y en linux no, tambien he cambiado a==0; por a=0; y sigue sin ir int i,a; for(i=0;i<29;i++){ for(a=0;a<31250000;a++){} a=0; }
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
La salida por consola es un buffer, es decir, antes de mostrarse en consola, los datos se almacenan. Cuando escribes una letra, en vez de ir a la consola, va al buffer. (Temas de eficiencia) El buffer se envía a la consola eventualmente de forma automática o manual. Como tu programa está trabajando continuamente, no llega a enviar el buffer. tendrás que hacerlo manualmente. Para ello, invoca la función:
Cada vez que quieras asegurarte de imprimer algo en consola (en este caso, después del printf) Por cierto, para hacer pausas, mejor utiliza Sleep(ms) de la librería <windows.h> (en caso de que estés en windows), o alguna otra utilidad relacionada con el tiempo. De este modo, evitas que tu programa consuma exceso de CPU.
|
|
« Última modificación: 4 Noviembre 2017, 13:43 pm por ivancea96 »
|
En línea
|
|
|
|
defalt_
Desconectado
Mensajes: 3
|
La salida por consola es un buffer, es decir, antes de mostrarse en consola, los datos se almacenan. Cuando escribes una letra, en vez de ir a la consola, va al buffer. (Temas de eficiencia) El buffer se envía a la consola eventualmente de forma automática o manual. Como tu programa está trabajando continuamente, no llega a enviar el buffer. tendrás que hacerlo manualmente. Para ello, invoca la función:
Cada vez que quieras asegurarte de imprimer algo en consola (en este caso, después del printf) Por cierto, para hacer pausas, mejor utiliza Sleep(ms) de la librería <windows.h> (en caso de que estés en windows), o alguna otra utilidad relacionada con el tiempo. De este modo, evitas que tu programa consuma exceso de CPU. Entendido! Ahora va perfectamente, muchas gracias
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Necesito delay....
Electrónica
|
ijfa
|
0
|
2,126
|
6 Enero 2006, 15:57 pm
por ijfa
|
|
|
delay
PHP
|
securedigital
|
3
|
2,620
|
7 Junio 2007, 06:12 am
por Crack_X
|
|
|
Crear un delay en asm
ASM
|
danielo-
|
3
|
18,780
|
21 Diciembre 2010, 20:31 pm
por Yurix
|
|
|
como elimino espacio entre letras sin eliminar espacios entre palabras?
Scripting
|
binario010101
|
4
|
4,928
|
11 Noviembre 2013, 08:16 am
por Almapa
|
|
|
Portátil con Windows 10 escribe “/“ entre las letras.
Windows
|
rem-_mer
|
2
|
7,408
|
24 Enero 2023, 21:27 pm
por Manatidoble
|
|