• Viernes 8 de Noviembre de 2024, 20:22

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - sc0tt

Páginas: [1]
1
C/C++ / Re: Switch case que muestra 2 veces seguidas el menu
« en: Lunes 2 de Mayo de 2011, 23:09 »
Buenas,
Perdón por haber tardado tanto en responder. Hemos estado liados con examenes parciales de cálculo y no he tenido tiempo.
He probado la condición del while que me has comentado y te digo lo que he puesto y que me sucede:
Código: C
  1.  
  2.  

do {
      printf("%s",menu);
      opcion=toupper(getchar());
                while (getchar() != 'n');
        switch (opcion) {
         case 'A':
                nueva_alta(BIBLIOTECA);
                break;
Resulta que al principio entra bien cuando marco la opción A, por ejemplo. Pero luego cuando vuelvo al menú y escojo otra opción, (la D por ejemplo) me vuelve a salir el menu y tengo que volver a pulsar la D para que me la coja y entre en la opcion D.
Salu2
PD: Como ves, he cambiado también el scanf ("%c",&opcion) por el toupper getchar para que me pase a mayúsculas la letra introducida.[code=c]

2
C/C++ / Switch case que muestra 2 veces seguidas el menu
« en: Viernes 29 de Abril de 2011, 19:43 »
Hola amigos de este foro tan completo:
Estoy haciendo un programa para la facultad (estoy en primer curso de Ingenieria Informatica) y se me plantea este problema en todos los switch case que hago, y es que cuando elijo una opción del menú este me aparece 2 veces en lugar de solo una. No he sido capaz de identificar donde está el error, a ver si alguien es capaz. Aquí os dejo un ejemplo del código fuente que utilizo en un programa:

int main (int argc, const char * argv[])
{
    char menu[] = "n A)Nuevo altan B)Bajan C)Modificaciónn D)Búsqueda por autorn E)Búsqueda por editorialn F)Búsqueda por títulon G)Búsqueda por fechann";
    char opcion;
    struct ficha BIBLIOTECA [LIBROS]={0,0,0,0};
   
   
    do {
      printf("%s",menu);
      scanf("%c",&opcion);
      switch (opcion) {
         case 'A':
                        una_funcion_cualquiera(argumentos);
                        break;
                        case 'B':
                        otra_funcion o código
                        break;
                        case 'Q':
            printf("nnSaliendo.nn");
            break;
}
   } while ('Q' != opcion);
   printf("nnTerminación normal del programa.nn");

   
    return 0;
}

Páginas: [1]