elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con el Switch en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con el Switch en C  (Leído 11,986 veces)
Samnov

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Problema con el Switch en C
« en: 26 Noviembre 2010, 21:57 pm »

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~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: Problema con el Switch en C
« Respuesta #1 en: 26 Noviembre 2010, 22:13 pm »

Simplemente haz un break:

Código
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5.    int cosa;
  6.  
  7.    scanf("%i", &cosa);
  8.  
  9.    switch(cosa)
  10.    {
  11.        case 1:
  12.            //Primera opcion
  13.        case 2:
  14.            //Segunda opcion
  15.        default:
  16.            //Lo que ocurre si no se eligieron las anteriores
  17.            break;
  18.     }
  19.  
  20.     return 0;
  21. }
  22.  


En línea

Samnov

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: Problema con el Switch en C
« Respuesta #2 en: 26 Noviembre 2010, 22:22 pm »

Gracias, pero no no funciona tampoco lo del break :S, no se que hacer la verdad
En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: Problema con el Switch en C
« Respuesta #3 en: 26 Noviembre 2010, 22:35 pm »

podes poner el codigo completo?
En línea

Samnov

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: Problema con el Switch en C
« Respuesta #4 en: 26 Noviembre 2010, 22:46 pm »

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~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: Problema con el Switch en C
« Respuesta #5 en: 26 Noviembre 2010, 22:47 pm »

¿No ves que la variable opcion siempre va tener el mismo valor dentro del bucle? La entrada de datos está fuera. :rolleyes:
« Última modificación: 26 Noviembre 2010, 22:49 pm por pablomi » En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: Problema con el Switch en C
« Respuesta #6 en: 26 Noviembre 2010, 23:15 pm »

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 Desconectado

Mensajes: 6



Ver Perfil
Re: Problema con el Switch en C
« Respuesta #7 en: 26 Noviembre 2010, 23:24 pm »

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 ;D por solucionar el problema
« Última modificación: 27 Noviembre 2010, 21:46 pm por Littlehorse » En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: Problema con el Switch en C
« Respuesta #8 en: 28 Noviembre 2010, 04:22 am »

Eso salta cuando haces algo asi por ejemplo:
Código
  1. switch( op )
  2. {
  3.   case 'aa': break;
  4. }
  5.  
En línea

Samnov

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: Problema con el Switch en C
« Respuesta #9 en: 5 Diciembre 2010, 21:10 pm »

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Switch
Programación C/C++
higor24 2 3,807 Último mensaje 19 Noviembre 2010, 16:41 pm
por Fer995
vpcf126fm problema con el switch del wireless
Dudas Generales
gmpv 0 3,419 Último mensaje 18 Septiembre 2011, 20:39 pm
por gmpv
Problema con switch y Roku
Redes
b2k 3 2,330 Último mensaje 2 Julio 2013, 03:01 am
por mugre
Problema con comando switch
Programación C/C++
oliverm 1 1,970 Último mensaje 9 Julio 2013, 01:05 am
por rir3760
Problema con Switch y ficheros.
Programación C/C++
assembly 2 2,192 Último mensaje 31 Agosto 2013, 16:42 pm
por assembly
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines