Cita de: NEBIRE en 18 Junio 2017, 15:15 PM
Imagina un usuario que abre un vídeo, este está ultracomprimido y tarda en cargarse, mientras el usuario, pulsa 'play' 'avance hasta x posición', luego 'pausa', luego 'volumen +', luego 'fullscreen', luego como todavía no responde, pulsa 'stop'... Puede optarse por guardar todas esas acciones y procesarlas en ese mismo orden cuando se haya completado la carga del vídeo... pero ahora imagina el mismo caso con un menú... uno lo despliega y pulsa 'play', no responde, lo despliega nuevamente y pulsa 'play' , luego 'pausa', luego otra vez 'play'...etc... en este caso puede no interesar procesar cada entrada, ni mucho menos guardar en un buffer todos los fallos...
esto es, si uno considera que se deben procesar, o se procesan todos en el orden en que se producen o tras un fallo, hay que investigar que produce el fallo y en tal caso decidir, si abortar todo o bien guardar todos desde el fallo 8incluído la entrada con fallo) y esperar (si procede), para luego volver a intentar procesarlo todo desde ese punto.
Muchas gracias por el aporte que me diste. Realmente no había dimensionado el alcance de lo que estaba yo mismo planteando. Lo que quería hacer en realidad, era un programa de consola para que datos numéricos fueran guardados y posteriormente se hicieran operaciones matemáticas con ellos(algo básico. Solo llevo 4 meses aprendiendo). Al desconocer el numero de datos que se ingresarían y por las características propias de acceso a la información, decidí que la mejor manera de hacerlo era a través de un pila dinámica. Nunca imagine esto como una forma de ir guardando entradas para ser agregadas, por ejemplo, a una lista de eventos implementada para algún programa de reproducción de vídeo u otro programa, que desde mi posición en la curva de aprendizaje, son mas complejos.
Efectivamente, no me interesaba recuperar una entrada fallida como un fallo (valga la redundancia) para su posterior procesamiento. Sino que mi intención era recuperar dicha entrada para que fuese asignada a un tipo de variable distinta . No quería que ocurriera esto:
Desea ingresar otro numero? (s/n) s
Ingrese numero 56.3
Desea ingresar otro numero? (s/n) s
Ingrese numero _
Esto implica que el usuario debe hacer dos entradas y yo quería que solo se hiciera una, a la manera de:
Ingrese numero o 's' para salir _
Esta entrada la recogería una variable de tipo float y si era una entrada fallida, estaba el presupuesto de que esta entrada traería consigo la letra 's'. Es por eso que me vi en la necesidad de recuperar la entrada fallida para asignarla automáticamente a una variable de tipo char para su evaluación.
Como me di cuenta de que no era necesario que la entrada fuera fallida, primero decidí evaluar si la entrada contenía la letra 's'(tipo char) para salir y sino, al no ser 's', se presupone que la entrada es un valor numérico. Por lo tanto, también se hace necesario devolver el caracter al buffer del sistema para que sea asignada automáticamente a una variable de tipo correcto, en mi caso float.
Así podía lograr mi cometido, ya que no encontré otra forma de hacerlo.
Ahora, gracias a ti, comienzo a comprender de que esto mismo, puede ser aplicado a diferentes programas mas complejos, pero que podría resultar de mejor manera en la forma en que lo indicas. Eso lo veré mas adelante, ya que hiciste que me propusiera nuevas metas.
Lo extraño, es que me parece que comienzo nuevamente de cero. No se por donde partir.