Código:
#define CTE 5
#define BORRA_BUFFER while (getchar() != '\n')
main(){
int i,c,j,flag;
int vector[5]={0};
flag=0;
while(!flag){
i=0;
c='1'; /*Condicion para que ingrese la primera vez
(quiero ver si se puede cambiar por otra cosa */
while( c != 10 && c <= '9' && c>='0' ){
c=getchar();
if(isalpha(c))
break; /*el break queda feo,
lo puedo cambiar por un c=10 o algo asi me parece */
vector[i++]= c-'0';
}
i--;
if(i==5)
flag=1; /* sale del ciclo*/
else{
printf("Parametro Incorrecto, Presione Enter y Escriba otro numero");
BORRA_BUFFER; /* El problema aca es que si no apreta enter
y pone otra cosa el programa falla
¿¿hay alguna otra manera de borrar el buffer ??*/
flag=0;
}
}
Aca funciona pero comente un par de cosas que no me gustan..
me faltaria validar si tiene numeros repetidos pero eso es facil...