menus

sergis
27 de Septiembre del 2004
Un saludo. En este codigo si selecciono una opcion diferente de 1 2 3 o 4 se cierra el programa. ¿ como hago para que no suceda y de el mensaje de opcion no valida?
Gracias

#include <stdio.h>
#include <stdlib.h>

void mostrar_elegido(int opcion) {
printf( "Se ha escogido la opción %i.n", opcion );
getchar();
}

int main() {
int opcion;
printf( "Escoge una opción:nn" );
printf( "t1. Opción 1n" );
printf( "t2. Opción 2n" );
printf( "t3. Opción 3n" );
printf( "t4. Opción 4n" );
opcion = getchar();
switch (opcion) {
case '1': mostrar_elegido(1);
puts( "La lista de ficheros en el directorio actual, segun el comando "dir":" );
system( "dir" );
getchar();break;
case '2': mostrar_elegido(2);break;
case '3': mostrar_elegido(3);break;
case '4': mostrar_elegido(4);break;
default: printf( "Opción no válidan" );

}

getchar();
return 0;
}

Rev
27 de Septiembre del 2004
Tu error es este:

case '1':

Cada case que pusiste le pusiste apostrofes eso significa que el uno se toma como carácter, y no como un entero solo debes quitarle los apostrofes a los cases.

Espero te sirva.