Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2012, 15:54
sefirotxx
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 9 meses
Puntos: 4
problema con enteros u caracteres

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;    
    }  
}