Autor
|
Tema: Problema con el Switch en C (Leído 11,906 veces)
|
Samnov
Desconectado
Mensajes: 6
|
Os cuento la situación para situaros , solo me dejan usar la stdio.h , por lo tanto cualquier cosa o ocurrencia para solucionar el problema que no se resuelva con esa libreria no me valdra
El tema es es siguente yo hago un switch dentro de un do//while para que se vaya repitiendo todo va perfecto , funciona , tiene los cases bien puestos el default por si acaso introduce el numero incorrecto etc etc , pero justo en el numero esta mi problema, me explico si por casualidad al usuario se le pasa por la cabeza poner una 'a' pues se fastidio el programa porque empieza a hacer un bucle infinito no se como solucionarlo :s
es algo asi por si no lo veis
scanf("%d", &cosa); do{ switch(cosa) case 1: break .
.
. default printf("opcion incorrecta!);
}while(cosa != 6)
|
|
|
En línea
|
|
|
|
xassiz~
|
Simplemente haz un break: #include<stdio.h> int main() { int cosa; switch(cosa) { case 1: //Primera opcion case 2: //Segunda opcion default: //Lo que ocurre si no se eligieron las anteriores break; } return 0; }
|
|
|
En línea
|
|
|
|
Samnov
Desconectado
Mensajes: 6
|
Gracias, pero no no funciona tampoco lo del break :S, no se que hacer la verdad
|
|
|
En línea
|
|
|
|
Beakman
|
podes poner el codigo completo?
|
|
|
En línea
|
|
|
|
Samnov
Desconectado
Mensajes: 6
|
mmm.. bueno es que es basicamente lo que he puesto xD no se pero bueno si venga pongo un ejemplo tal y como es el mio
#include <stdio.h>
int main() { //menu con tres casos int opcion;
do{
printf("Introduzca la opcion que desea \n"); scanf("%d", &opcion);
switch(opcion) case 1: printf("hola"); break;
case 2: printf("adios"); break;
case 3: break; //para salir
default: printf("Opcion incorrecta"); break;
}while(opcion != 3);
}
lo que he hecho ahora es una tonteria pero es en escencia lo que tengo , el problema viene cuando en vez de poner por ejemplo la opcion 2 se me ocurre poner una a, al principio pense en hacerlo con if's pero hay montones de posibilidades y en este caso no seria muy dificil pero en un menu con 15 opciones por ejemplo seria morirse
// modificado tienes razon esque lo copie mal perdon
|
|
« Última modificación: 26 Noviembre 2010, 22:54 pm por Samnov »
|
En línea
|
|
|
|
xassiz~
|
¿No ves que la variable opcion siempre va tener el mismo valor dentro del bucle? La entrada de datos está fuera.
|
|
« Última modificación: 26 Noviembre 2010, 22:49 pm por pablomi »
|
En línea
|
|
|
|
Beakman
|
Si el problema es que el usuario ingrese una letra, es logico que va a saltar un error porque la variable opcion es un int. Intenta cambiarlo por un char. Y en vez de poner case 1, case 2, le pones case '1', case '2'. Ah y te faltan las llaves { } para el switch.
|
|
|
En línea
|
|
|
|
Samnov
Desconectado
Mensajes: 6
|
GUAU!! muchas gracias asi si que funciona , bueno saltan unos warnings al compilar que dicen algo de multi-character constant pero si el programa funciona Lh: No hagas doble post. Utiliza el botón modificar.Pero ahora la duda que tengo es porque me sale lo del multi-character constant en el momento de compilar con el gcc, esque claro preferiria que compilara limpio sabeis sin warnings de por medio, aunque le doy las gracias a qily y pablomi por solucionar el problema
|
|
« Última modificación: 27 Noviembre 2010, 21:46 pm por Littlehorse »
|
En línea
|
|
|
|
Beakman
|
Eso salta cuando haces algo asi por ejemplo: switch( op ) { case 'aa': break; }
|
|
|
En línea
|
|
|
|
Samnov
Desconectado
Mensajes: 6
|
y sabes si hay alguna forma de resolverlo ? es decir yo hago exactamente lo que dices y vale si el programa tira bien pero el problema viene porque la compilación no es digamosle "limpia", si hay alguna forma que alguien sepa para solucionar lo del dichoso multi-character constat le estaria agradecido
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con Switch
Programación C/C++
|
higor24
|
2
|
3,776
|
19 Noviembre 2010, 16:41 pm
por Fer995
|
|
|
vpcf126fm problema con el switch del wireless
Dudas Generales
|
gmpv
|
0
|
3,400
|
18 Septiembre 2011, 20:39 pm
por gmpv
|
|
|
Problema con switch y Roku
Redes
|
b2k
|
3
|
2,297
|
2 Julio 2013, 03:01 am
por mugre
|
|
|
Problema con comando switch
Programación C/C++
|
oliverm
|
1
|
1,936
|
9 Julio 2013, 01:05 am
por rir3760
|
|
|
Problema con Switch y ficheros.
Programación C/C++
|
assembly
|
2
|
2,157
|
31 Agosto 2013, 16:42 pm
por assembly
|
|