Bueno la pregunta es sencilla, necesito validar cuando el usuario ingresa un entero o un char, ya que en el programita siguiente en la función pedirOpcion me captura lo que sea (entero o caracter, y no deberia ser por que yo le di valor int a la variable opcion, ademas en la siguiente funcion elegirMenu(int o) estoy haciendo la validacion para que el programa haga cosas solo con 4 numeros)....
O sea que cuando corro el programa y le pongo una opcion en char el programa se me queda pegado en
Opcion invalida. Presione una tecla para continuar.....
Aqui el codigo
Código:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int opcion;
do{
dosLineas();
pantallaInicio();
opcion = pedirOpcion();
elegirMenu(opcion);
}
while (opcion > 4 || opcion <=0);
system("PAUSE");
return 0;
}
//saltar dos lineas
void dosLineas()
{
printf("\n\n");
}
//inicio del sistema, titulo y menus
void pantallaInicio()
{
printf("\t\t*********************************************\n");
printf("\t\t* SISTEMA X *\n");
printf("\t\t*********************************************\n");
printf("\t\t* *\n");
printf("\t\t* Menu *\n");
printf("\t\t* 1. Opcion 1 *\n");
printf("\t\t* 2. Opcion 2 *\n");
printf("\t\t* 3. Opcion 3 *\n");
printf("\t\t* 4. Salir *\n");
printf("\t\t* *\n");
printf("\t\t***********************************************\n");
dosLineas();
}
//funcion para solicitar una opcion al usuario, retorna el numero de opcion
int pedirOpcion()
{
int opcion;
printf("Ingrese una opcion : ");
scanf("%d",&opcion);
return opcion;
}
//funcion que determina que realizar en el programa dependiendo de la opcion
//escogida por el usuario, la cual se pasa en el parametro de la funcion
void elegirMenu(int o)
{
switch(o)
{
case 1: printf("opcion 1");break;
case 2: printf("opcion 2");break;
case 3: printf("opcion 3");break;
case 4: exit(0);
break;
default: printf("Opcion invalida.");
dosLineas();
system("PAUSE");
system("cls");
break;
}
}