C/Visual C - Que puedo hacerle ???

 
Vista:

Que puedo hacerle ???

Publicado por Jose Luis Palacio Cinco (2 intervenciones) el 28/12/2000 00:00:00
Hola a todos....

Escribo por que tengo una duda en un programa que me dejaron en la escuela...

Es un programa sobre una agenda telefonica... Pues pido el nombre, el telefono y la direccion... Declaro una estructura donde el nombre es una cadena, el telefono es entero y la direccion es otra cadena...

Pero resulta que cuando pido el telefono si le pongo un caracter me lo acepta !!no guarda el caracter!! me pone un valor False... Y pues quiero saber como hacerle para que cuando le de el numero de telefono, si le llego a poner un caracter sepa que no es un numero el que le estoy insertando y mandar un mensaje de error ...ok
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:Que puedo hacerle ???

Publicado por oscar (4 intervenciones) el 29/12/2000 00:00:00
Como estas obteniendo el valor numerico?
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:Que puedo hacerle ???

Publicado por Jose Luis Palacio Cinco (2 intervenciones) el 29/12/2000 00:00:00
normalmente te voya adar un ejemplo

int t;
t=0;
scanf("%d",&t);

pero cuando le doy un caracter me lo acepta pero t sigue siendo 0 pero si le doy 5f por ejemplo t toma el valor de 5 y f no la toma encuenta entonces quiero saber como hacerle para poder saber que le estoy dando un caracter o si le doy numero y un caracter.
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:Que puedo hacerle ???

Publicado por Cris (11 intervenciones) el 29/12/2000 00:00:00
por que no intentas usar una cadena para obtener el valor y luego usas el atoi(char *str), me explico:

int tel; //variable del telefono
char telbuff[15]; //variable para leerlo

void main(){
gets(telbuff); //leer el telefono
tel=atoi(telbuff); //checa la cadena
if(tel==0) //si no es digito algun caracter
printf("Error, no es telefono valido");
else //fueron solo numeros
printf("telefono valido");
}
la funcion atoi regresa un entero, y lo que hace es checar caracter por caracter si es un digito o no, si encuentra alguno que sea una letra u otra cosa que no sea digito regresa cero, en caso contrario regresa el numero ya convertido, por ejemplo: se lee la cadena "34", entonces a la variable entera se le asigna treinta y cuatro, y si leyera "34f", a la variable se le asigna cero.
Solo hay un detallito con esta funcion, si se introduce la cadena "0", la variable entera tendra cero, asi que nada mas valida eso.

espero te haya sido util
saludos
Cristina
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:Que puedo hacerle ???

Publicado por edx (8 intervenciones) el 04/01/2001 00:00:00
Pues en mi opinion todos estan mal por que si dices que pones un caracter seria ilogico declararlo entero pues yo digo que es así
char tel[80];
printf("Dame el telefono\n");
scanf("%s",&tel);
printf("El telefono es:%s",tel);
Bueno eso digo
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