C/Visual C - como aislar el valor en ASCII de las letras

 
Vista:

como aislar el valor en ASCII de las letras

Publicado por Patricia Piña (2 intervenciones) el 06/10/2006 18:03:45
tengo un programa en c donde requiero hacer una operacion pero al ingresar un caracter realiza la operacion con el valor del codigo ascii, como puedo evitar eso y mandar un error.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como aislar el valor en ASCII de las letras

Publicado por jesus (11 intervenciones) el 06/10/2006 18:35:19
No se si es lo que quieres, pero a lo mejor estas leyendo el valor como un caracter, osea, scanf("%c",&caracter); pero a lo mejor es que has definido tu variable como un entero u otra cosa, definiste como <int caracter;>, entonces aunque lo leas como un caracter, lo que se guarda dentro de tu variable es el codigo ascii de la tecla.
Es este tu problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como aislar el valor en ASCII de las letras

Publicado por Eduardo Negrete (76 intervenciones) el 06/10/2006 19:21:18
Me imagino que estas capturando un caracter del teclado.
int Caracter;

Caracter = getch();

si quieres comprobar si es un digito puedes usar la funcion
int isdigit( int c )

donde recibe el caracter a comparar
devuelve verdadero si c es digito de lo contrario devuelve 0

No se si sea eso lo que quieras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como aislar el valor en ASCII de las letras

Publicado por Tom (8 intervenciones) el 09/10/2006 11:32:00
A ver. Lo que "entra" a tu programa desde el teclado, acaba siendo un código ascii, lo mires desde dónde lo mires.

Es decir, si pulsas la tecla marcada como 9 en el teclado, lo que obtienes es un byte (un char) que contiene el valor 57. Si lo que quieres es obtener un tipo numérico que contenga el valor 9, prueba a hacerlo "a mano" (si te fijas, 57 & 15 = 9) o utiliza funciones como atoi().
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como aislar el valor en ASCII de las letras

Publicado por Patricia (2 intervenciones) el 09/10/2006 16:37:27
Para ser mas especifica, mi programa requiere de que el usuario ingrese un valor (cualquier numero) y realice una operacion con el. El problema es que cuando el usuario ingresa una letra, esta operacion se realiza pero con el valor ASCII de la letra, aun y cuando la variable esta declarada int. La pregunta es como puedo evitar eso y que solo admita numeros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como aislar el valor en ASCII de las letras

Publicado por Tom (8 intervenciones) el 09/10/2006 19:01:28
Tu programa recoge la entrada como un string o cada caracter como un char.

Utiliza la función atoi() para convertir ese string en un int.

Y para controlar la entrada del usuario, tendrás que ir examinando carácter a carácter para ver si se trata de un carácter numérico o no:

char c = (char) getchar();

if(c < '0' || c > '9') {
// Entrada no válida. Haz algo aquí.
} else {
// Este caracter es correcto, añádelo a tu string para ser tratado
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar