Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: Villano en Marzo 13, 2012, 01:17:03 am

Título: Manejo De error
Publicado por: Villano en Marzo 13, 2012, 01:17:03 am
Que devuelve un programa si  a un int le pongo por ejemplo una A;
...
int x;
cin>>x;// si aca ala x le pongo una 'a' empiesa a largar cualquier cosa cuando sale el cout
cout<<x;
...
que devuelve el programa?;
como lo manejo?;
Título: Re:Manejo De error
Publicado por: piou en Marzo 13, 2012, 08:11:58 am
De primeras pensaría que le está metiendo el valor ascii de la letra a. No lo tengo muy claro, tendré que probarlo un poco y te comento.
Título: Re:Manejo De error
Publicado por: JAG en Marzo 13, 2012, 09:45:10 am
Pues yo lo he probado con un programa hecho de ejemplo y me ha devuelto el mismo valor que tenía la variable int antes de meterle la letra...
Yo creo que simplemente no la coge... Para el manejo de errores puedes añadir detrás del cin un if que compruebe si verdaderamente es un número lo que se ha insertado...
Prueba algo así:
Código: [Seleccionar]
char *num;
printf("Ingresa un numero");
gets(num);
while(*num){
   if (isdigit(*num)){
      printf("%c",*num);
   }else{
      printf("ERROR");
   }
}
Título: Re:Manejo De error
Publicado por: Villano en Marzo 14, 2012, 03:25:37 am
Bien voy a ser mas claro.Pasa que ise un codigo muy basico para saber el numero asccii.
Código: [Seleccionar]
while(1)// bucle infinito
{
n=getchar();//aca se frena el bucle
putchar(n);//se escribe el caracter que puse
cout<<"------";
cout<<"\t"<<n<<"\n";// se escribe como numero
}
.Pero despues seme ocurrio que si podia convertir un caracter asccii a numero puedo convertir un numero a asccii. asi
Título: Re:Manejo De error
Publicado por: Villano en Marzo 14, 2012, 03:30:29 am
que ise esta parte del codigo.que es la que genera el problema
Código: [Seleccionar]
int n;
while(1)//bucle infinito
{
cin>>n;//recibo el numero
cout<<n<<"---";//imprimo n como numero
putchar(n);//imprimo n como caracter asccii
cout<<"\n";
}
Título: Re:Manejo De error
Publicado por: piou en Marzo 14, 2012, 06:10:23 pm
Para pasar el número a ascii, tendrás que hacer:

Código: [Seleccionar]
char a = (char)numero;