Programación General => C/C++ => Mensaje iniciado por: danito en Viernes 23 de Abril de 2004, 16:07
Título: Validacion De Datos
Publicado por: danito en Viernes 23 de Abril de 2004, 16:07
Hola, necesito que por favor me ayuden a validar los datos de entrada. Cuando utilizo "cin", como hago para que me acepte solo numeros, cuando el dato que leo es de tipo "int".
Título: Re: Validacion De Datos
Publicado por: The Black Boy en Viernes 23 de Abril de 2004, 16:28
imagino que tienes algo como esto.......
Código: Text
main()
{
int x;
cout<<"\n Digite Dato";
cin>>x;
}
y quieres que el usuario no pueda entrar caracteres de tipo char(letras)
pues no se... yo colocaria un condicional ( if ) y que evaluara la x si la x esta entre el ASCII (65 y 90) && (97 y 122) entonces arroje un mensaje que diga no se permiten letras, bueno es algo asi de rapidez que se me ocurre...
espero te sirva un Saludo :hola:
Título: Re: Validacion De Datos
Publicado por: pmike en Sábado 24 de Abril de 2004, 00:13
Hola Danito, yo tengo otro metodo mas artesanal:
Tengo una funcion que comprueba q es entero, si no lo es, pues lo he dirigido a una cadena, bueno la veras con gotoxy, pq me interesaba pasarla con las coordenadas x,y. ademas me devuelve el entero en cuestion para utilizar.
int comprobarInt(int x,int y) { char cad[30]=""; int valorInt=0; while(!scanf("%d",&valorInt))//si no es correcto(falso) entro en el bucle { scanf("%s",&cad); //si el tipo de variable es incorrecta, lo meto en cad gotoxy(8,44);cprintf("\a--LO SIENTO INTRODUCE NUMEROS--"); gotoxy(x,y);cprintf(" "); gotoxy(x,y); } flushall(); gotoxy(8,44);cprintf(" "); return valorInt; }
gueno ya me diras como ta ido gege.
Saludos
Título: Re: Validacion De Datos
Publicado por: piyey en Martes 4 de Mayo de 2004, 02:49
Hola danito, el problema que tienen esos codigos anteriores es que evalua hasta despues que el usuario introdujo el texto, una mejor forma de hacerlo seria mas o menos asi:
#include <stdio.h> #include <conio.h>
void main() { int op; int valor=0; clrscr(); while((op=getch())!=13) { if(op>=48&&op<=57) { putch(op); valor=valor*10+(op-'0'); } } printf("\nvalor=%d",valor); }
si tiene algun problema me avisas porque estoy desde un cyber y no tengo el compilador aqui...