Título: [Ayuda][C] Leer solo un caracter. Publicado por: GROV en 23 Octubre 2012, 07:54 am Buenas noches a todos, bueno veran, generalizando estoy haciendo un programa para una clase en la escuela el cual tiene un menu con switch y do_while que, en los casos, utiliza caracteres. El problema que tengo es que cuando introduzco algo asi como:
Código: aefs el programa primero se va al caso 'a', doy un enter y se va al caso 'e', luego al caso 'f', despues como no tengo caso 's' entra al default, después de pasar por cada caso me regresa al menu, mi duda es que podria hacer para que al introducir de nuevo Código: aefs solo me tome encuenta el primer caracter, entre a ese caso independientemente del que sea y vuelva al menu, osea que solo me tome el primer caracter y los demás me los ignore. De antemano muchas gracias, y espero me puedan ayudar. Saludos! Título: Re: [Ayuda][C] Leer solo un caracter. Publicado por: do-while en 23 Octubre 2012, 08:02 am ¡Buenas!
Si no pones el codigo, es dificil adivinar que es lo que estas haciendo mal... ¡Saludos! Título: Re: [Ayuda][C] Leer solo un caracter. Publicado por: ankora45 en 23 Octubre 2012, 12:13 pm Hola, puedes crear una cadena char menu[50]y pasarle a switch(menu[0])
asi lee solo el primer caracter asi si pones asdf siempre te lleva al defaul sin pasar por todas las letras Título: Re: [Ayuda][C] Leer solo un caracter. Publicado por: 0xDani en 23 Octubre 2012, 16:11 pm Hola, puedes crear una cadena char menu[50]y pasarle a switch(menu[0]) asi lee solo el primer caracter asi si pones asdf siempre te lleva al defaul sin pasar por todas las letras Ocupar 50 bytes para solo utilizar uno... digamos que no es la mejor solucion. Título: Re: [Ayuda][C] Leer solo un caracter. Publicado por: satu en 23 Octubre 2012, 18:58 pm Hola!!
Puedes hacer algo como esto: Código
Creo que debería funcionar. Saludos Título: Re: [Ayuda][C] Leer solo un caracter. Publicado por: rir3760 en 24 Octubre 2012, 03:02 am Puedes hacer algo como esto: Funciona pero hay que cambiar el tipo de la variable "opcion" a "int" ya que ese es el tipo de retorno de la función "getchar".Código
Creo que debería funcionar. Otra forma es mediante "scanf": Código Ahí cadena de formato indica: 1) " " leer y descartar el espacio blanco al inicio de la linea. 2) "%c" leer un carácter y almacenarlo en la variable "ch". 3) "%*[^\n]" leer y descartar todo carácter distinto de '\n'. 4) "%*c" leer y descartar un carácter (el '\n'). Un saludo Título: Re: [Ayuda][C] Leer solo un caracter. Publicado por: GROV en 24 Octubre 2012, 03:25 am Ok, muchas gracias a todos me han ayudado mucho, y si, se me ocurrio hacerlo como dijo @ankora45, pero si no es la forma más eficiente, y ambas formas me funcionaron
@satu y @rir3760, se los agradezco. Saludos!! |