Título: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 01:22 am Hola que tal, estoy programando una calculadora como para empezar con este lenguaje. El menu de opciones lo estoy haciendo con un do while y luego con switch tengo un menu de opciones del 1 al 9 dentro del do while, mi problema es que necesito que al ingresar el primer numero, el menu ser cargue con el valor que ingrese como por ejemplo
1-Ingrese un numero (X) Cuando ingreso un numero por ejemplo 5 el menu deberia iterar otra vez con el nuevo numero quedando asi 1-Ingrese un numero (5) No se me ocurre como hacer esto, si necesitan algo más no duden en preguntarme. Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 01:41 am Intuyo que lo que quieres es editar lo que ya hay escrito en la consola.
Si es así, y si estás empezando en el lenguaje, te diría que pases de esto. Es más "problemático" de lo que parece. Sinceramente, pasa de esto. Tendrás que usar una librería o la API del sistema operativo (librería windows.h en caso de windows) para hacerlo. Si igualmente quieres hacerlo, aquí el primer comentario ya pone un código para hacerlo: https://stackoverflow.com/questions/27337481/how-to-change-a-character-in-c-console-that-was-printed-to-the-screen-earlier (https://stackoverflow.com/questions/27337481/how-to-change-a-character-in-c-console-that-was-printed-to-the-screen-earlier) Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 01:54 am Intuyo que lo que quieres es editar lo que ya hay escrito en la consola. Me falto aclarar que estoy programando en C, ese codigo tambien funciona en c? Si es así, y si estás empezando en el lenguaje, te diría que pases de esto. Es más "problemático" de lo que parece. Sinceramente, pasa de esto. Tendrás que usar una librería o la API del sistema operativo (librería windows.h en caso de windows) para hacerlo. Si igualmente quieres hacerlo, aquí el primer comentario ya pone un código para hacerlo: https://stackoverflow.com/questions/27337481/how-to-change-a-character-in-c-console-that-was-printed-to-the-screen-earlier (https://stackoverflow.com/questions/27337481/how-to-change-a-character-in-c-console-that-was-printed-to-the-screen-earlier) y puede ser que con un flag? se pueda hacer porque creo que vi por ahi, pero no termine de entender Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 01:57 am El código de la respuesta, sí, sirve en C. Incluyendo la librería <windows.h>
Tendrás que explicar lo de hacerlo con una "flag". Eso es un concepto genérico que no dice mucho en este caso. Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 02:47 am El código de la respuesta, sí, sirve en C. Incluyendo la librería <windows.h> Algo asi como poner un if y una bandera. Si se ingreso el numero a entra al if y cambias a por %d, me dijeron eso pero no lo entiendo.Tendrás que explicar lo de hacerlo con una "flag". Eso es un concepto genérico que no dice mucho en este caso. Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 13:04 pm Mm haz una cosa. Escríbeme qué es lo que quieres que ocurra exactamente. El mensaje con el número "(5)", quieres que aparezca después de escribir el número, debajo, o quieres que reemplace el número de arriba?
Código: 1-Ingrese un numero (X) Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 20:13 pm Compilo el programa sale esto en la consola(obviando todas las variables y demas para no confundirte más):
Código: printf("1- Ingresar primer numero (A)\n"); Escribo 1 así eligo la opcion numero 1 que es la de ingresar el primer número, luego escribo un 5. Ahora lo que quiero que haga el programa es que me vuelva a aparecer el menu pero que en vez de que salga "1- Ingresar primer numero (A)" salga "1- Ingresar primer numero (5)" en la consola, y asi con las demas opciones cuando las seleccione Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 20:23 pm Uhm. Tienes varias maneras.
La primera es la que supongo que te comentaron. A la hora de mostrar el menú: Código
Otra opción, para hacerlo más automático, sería: Código
Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 21:59 pm Lo siento es que no pude deducir lo que hiciste, me harias un gran favor si lo puedes editar tu y si deseas explicarme como funciona intente copiarlo sin saber como funciona pero no me salio
Código: int main() Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 22:02 pm Olvídate de la segunda forma que puse.
La primera, no es más que un if. Cambias los printf que tienes por ese if. Pruebalo con el primer printf primero. Lo único que no tienes en tu código es la variable "numeroAIngresado". Eso solo es un bool que indica, si es true, que ya se ingresó A. Basta que inicialices esa variable a false y que la pongas a true cuando haya ingresado A. El resto, está en el código que puse. Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 22:32 pm Lo hice asi pero esta mal, no se en que me estoy equivocando
Código: int main() Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 23:03 pm :o
numeroAInresado es una flag. ¿Cuándo la pones a 1? Pues cuando se ingrese el numero. ¿Después de qué línea "num1" tiene valor? Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 23:27 pm Entonces la bandera tiene que ir en el case 1?
Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 2 Septiembre 2017, 23:29 pm Ahí la pones a 1. Ahí es donde el número ah sido ingresado, ¿no? El nombre de las variables representa qué es lo que significa. Si quieres que esa variable signifique "si el número ha sido ingresado o no", haz que sea cierto.
Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 2 Septiembre 2017, 23:47 pm num1 tiene valor en el case 1 de ahi quiero que ese valor se cargue en el menu, entonces tendria que hacer el flag en case 1
Código: case 1: No logro entender si numeroAIngresado=0, entra en el if y luego el string pasa a mostrar el valor luego cambio el valor a 1 ..... No entiendo Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 3 Septiembre 2017, 04:03 am Entonces la bandera tiene que ir en el case 1? Poner la bandera a 1 en el case. Eso y nada más, solo el numeroAIngresado=1;. Es eso lo que estás indicando: que el número ha sido ingresado.El resto, donde estaba. Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 3 Septiembre 2017, 04:46 am Perdón pero no lo logro entender, si me ayudas escribiendolo tu creo que se me armaria el puzzle que tengo ahora en mi cabeza
Título: Re: Duda con menu de opciones Publicado por: ivancea96 en 3 Septiembre 2017, 13:49 pm Lo tenías hacho. Copio tu código:
Código
:o numeroAInresado es una flag. ¿Cuándo la pones a 1? Pues cuando se ingrese el numero. ¿Después de qué línea "num1" tiene valor? Código
Título: Re: Duda con menu de opciones Publicado por: Xtrangr en 3 Septiembre 2017, 15:39 pm Ahora entiendo todo, ahora me queda mucho más claro el concepto de flag muchas gracias por tu ayuda
|