Menú modo consola en C

bonaparta
25 de Agosto del 2008
Estoy haciendo un menú en modo consola el cuál tiene 3 opciones distintas, y para finalizar se ingresa el 0. Cuando ingreso una letra o puntuación el programa entra un ciclo indefinido repitiendo la última opción ingresada. Aquí les dejo parte del código:

while( opcion != SALIDA ) {

printf( "Elija una opcion: \n" );
scanf( "%d", &opcion );

/* Compruebo que lo que tecleé es un número decimal*/
if ( isdigit( opcion ) == 0 ) {
eleccion( opcion );
}
else {
/* Provoca un mensaje de error ya que no existe dicha opción*/
eleccion( 100 );
}

}

void eleccion( int opt )
{
switch( opt ) {

case 0:
;
break;

case 1:
printf( "Ha elegido la opcion %d \n", opt );
break;

case 2:
printf( "Ha elegido la opcion %d \n", opt );

break;

case 3:
printf( "Ha elegido la opcion %d \n", opt );
break;

default:
printf( "Opcion incorrecta, elija una opcion valida \n" );
break;
}

}

bonaparta
25 de Agosto del 2008
Olvidé agradecer por adelantado!