Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Formulario switch ERROR

Estas en el tema de Formulario switch ERROR en el foro de C/C++ en Foros del Web. Estoy haciendo un formulario sencillo en c# con un switch pero al elegir una opcion invalida en vez de mostrarme el menu de nuevo me ...
  #1 (permalink)  
Antiguo 17/12/2014, 06:23
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 6 meses
Puntos: 0
Formulario switch ERROR

Estoy haciendo un formulario sencillo en c# con un switch pero al elegir una opcion invalida en vez de mostrarme el menu de nuevo me lo duplica.
Código:
    char opcion;
    int ini_menu=0;
    do{
    printf("\nBienvenido\n");
    printf("a) Nueva Partida \n");
    printf("b) Cargar Partida \n");
    printf("Elija una opcion: \n");
    scanf("%c", &opcion);
    switch (opcion) {
        case 'a':
            ini_menu = 1;
            printf("Se iniciara la partida aqui");
            break;
        case 'b':
            ini_menu = 1;
            printf("Se cargara la partida aqui");
            break;
        default:
            printf("Elija una opcion valida\n");
    }
    } while(ini_menu == 0);
Alguien podria darme una solucion? Gracias
  #2 (permalink)  
Antiguo 17/12/2014, 06:39
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Formulario switch ERROR

Un pequeño detalle: tu código es C, no C#.

Cuando dices que te lo duplica... te refieres a que la primera vez sale dos veces o a que cada vez que eliges una opción muestra a continuación el menú en vez de limpiar la pantalla???
  #3 (permalink)  
Antiguo 17/12/2014, 06:43
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Formulario switch ERROR

Fallo mio es C.
El error sale al introducir la opcion invalida, de primeras lo imprime bien.
  #4 (permalink)  
Antiguo 17/12/2014, 06:49
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Formulario switch ERROR

Tu problema se debe a que scanf extrae únicamente un carácter del buffer de entrada... pero al elegir una opción del menú tu has pulsado dos teclas: La correspondiente a la opción y el enter.

Prueba a incluir, por ejemplo, un getchar después del scanf para eliminar el "enter".

Hay otras opciones más sofisticadas, pero la culpa de esto yo se la hecho a la pésima gestión que hacen C y C++ de la entrada estándar.
  #5 (permalink)  
Antiguo 17/12/2014, 07:10
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Formulario switch ERROR

Asi ya me funciono. La verdad es que es un problema, si.
Gracias por la ayuda!

Etiquetas: form, formulario, switch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:33.