Título: (solucionado)volver menu principal Publicado por: cundre en 10 Febrero 2011, 17:52 pm hola alguien me podria decir como volver al menu principal.
me esplico. Tengo este ejemplo pero cuando quiero volver al inicio me duplica el menu principal. ¿donde esta el fallo? Código
Un saludo. Título: Re: volver menu principal Publicado por: Oblivi0n en 10 Febrero 2011, 18:22 pm Fijate que el tipo de res es int, y en la condicion del while, lo estas comparando como si fuese un char,
Puedes hacer el menu como una funcion void, asi te quedara la funcion main mas libre. Otros fallos: Código
Se debe incluir como #include <stdio.h> "archivo" se utiliza para archivos que estan en la misma carpeta la funcion main, es recomendable que vaya precedida de int, segun el standart P.D: Evita usar la instruccion goto. Saludos Título: Re: volver menu principal Publicado por: cundre en 10 Febrero 2011, 18:29 pm ok entonces deberia crear una funcion void
y llamarla desde el main? Título: Re: volver menu principal Publicado por: Oblivi0n en 10 Febrero 2011, 18:38 pm ok entonces deberia crear una funcion void y llamarla desde el main? Con el tamaño de codigo que tienes no seria necesario, pero cuando en un programa llamas al menu varias veces, comprenderas que es mas practico :xD Título: Re: volver menu principal Publicado por: cundre en 10 Febrero 2011, 18:43 pm Gracias por las aclaraciones
pero me sigue imprimiendo 2 veces el menu deberia llamar a fmenu de alguna otra manera desde el main? Código
Título: Re: volver menu principal Publicado por: Ferno en 10 Febrero 2011, 20:41 pm Se me hace que al darle a una letra y tocar enter, getchar() toma la letra, procesa, vuelve a imprimir el menú, pero no espera a que escribas otra letra, sino que lee el enter que presionaste anteriormente, y como es distinto de a, b o c, entonces vuelve a imprimir el menú. Deberías de limpiar el buffer de entrada (olvídate de usar fflush(stdin) como seguramente vayas a leer en tooooodos lados, por favor :D).
Otra cosa, es bastante feo llamar a la función main :P Título: Re: volver menu principal Publicado por: xassiz~ en 10 Febrero 2011, 21:44 pm El fallo principal estaba en que los if tenían que estar dentro del while ;D
La variable res de tipo char, si, pero dónde utilizas las variables "a", "b" y "c"? :xD Y por supuesto no usar goto. Código
Título: Re: volver menu principal Publicado por: cundre en 11 Febrero 2011, 17:18 pm Bueno lo Solucione Gracias por las pistas.
añadi while(getchar()!='\n'); Para vaciar el buffer del teclado Paso por paso: - Llamada a scanf("%d", &numero); - Como el buffer esta vacio, se espera a que el usuario introduzca por teclado: - Introduces el numero 54 y pulsas Intro. - El buffer ahora contiene esta cadena: "54\n" - scanf() extrae el primer valor numerico que encuentra: 54 - El buffer contiene ahora: "\n" - Llamada a scanf("%d", &numero); (por segunda vez) - Como en el buffer ya hay un '\n' , que es como si ya hubieras pulsado Intro, se finaliza la entrada por teclado sin darte oportunidad a escribir nada. referencia: http://foro.noticias3d.com/vbulletin/showthread.php?t=121100 no se si es la mejor manera pero comforme aprenda lo averiguare. Un saludo. |