C/Visual C - Ayuda para leer el tipo de dato de una variable.

 
Vista:
sin imagen de perfil

Ayuda para leer el tipo de dato de una variable.

Publicado por Hernan (2 intervenciones) el 24/09/2014 16:17:24
Buenos dias para todos!

Mi nombre es Hernan, y soy un estudiante reciente de la carrera de programacion, por lo cual el unico idioma que manejo hasta ahora es C, y muy basicamente.

Queria pedir ayuda en lo siguiente: en un ejercicio que me dieron, tengo que validar el tipo de dato que se lee para una variable, osea, que si declaro una variable del tipo int, que el usuario no pueda introducir tipos de dato de char o float.

Siempre trate de hacerlo de esta manera:

main()
{
int num;

printf("Ingrese un numero entero")
scanf("%d",&num);
while(num!=int)
{
printf("Error, no es un numero entero, reingrese");
scanf("%d",&num);
}
printf("El numero ingresado es: %d",num);
getch();
}


Pero siempre que hago esto, el while se me hace un bucle infinito, me podrian ayudar a hacerlo correctamente por favor?

Muchas Gracias.
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
sin imagen de perfil

Ayuda para leer el tipo de dato de una variable.

Publicado por Pico (37 intervenciones) el 24/09/2014 21:41:32
En la memoria se guarda igual un float que un int que un char. La única diferencia es que ocupe un byte, 2, 4.... O sea, el typeof no existe en c. Hay una macro en algún compilador que no sé qué devuelve, pero no es algo que tenga que ver con c. El tipo de dato que sea algo escrito en la memoria depende de cómo lo leas y lo interpretes, nada más.
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
sin imagen de perfil

Ayuda para leer el tipo de dato de una variable.

Publicado por Hernan (2 intervenciones) el 25/09/2014 04:31:16
Si eso ya lo se, pero mi problema viene cuando el usuario intenta poner un dato de tipo float o char en el numero entero, como hago yo en mi codigo fuente para que cuando el usuario haga esto le salga un error y deba volver a reingresar el numero hasta que lo ingrese bien
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
sin imagen de perfil

Ayuda para leer el tipo de dato de una variable.

Publicado por Pico (37 intervenciones) el 25/09/2014 09:38:19
Si pone un float es que a puesto un punto o un acoma, no le djes ponerlo. Si mete un char es ue ha pulsado una tecla que de una letra, no le dejes. Introduce carácter a carácter. Si lo que introduce no es un número, una tecla entre '0' y '9' dile que no.
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

Ayuda para leer el tipo de dato de una variable.

Publicado por Chema (234 intervenciones) el 25/09/2014 10:32:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int CheckNunber(char *ch){
 
	if ( (*ch >= '0' && *ch <= '9')
		|| *ch == '-'  /*numeros negativo*/
		|| *ch == '.') /*tipo float, (decimal)*/
		return 1;
 
	return 0;
}
 
int main(void){
 
	char m[] = "1234567890.-AaBbcdefghijk";
 
	char *pt;
	pt = m;
 
	while(*pt){
		printf(" %c	%d\n",*pt, CheckNunber(pt));
		pt++;
	}
	return 0;
}
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