No puedes hacerlo asi, tienes que usar o bien un char[] o bien un string y luego comprobar que solo haya numeros.
Por ejemplo:
Código C:
Ver original#include <stdio.h>
int main(int argc, char* argv[])
{
char cadena[10];
int i,largo,base=1,numero,error=0;
printf("Introduce un valor numerico: "); for(largo=0;cadena[largo] != '\0';largo++); //Obtengo el largo de la cadena
//Recorro la cadena de derecha a izquierda y voy multiplicando por 10 la base
for(i=largo-1,numero=0;i>=0;i--,base*=10){
if(cadena[i] >= '0' && cadena[i] <= '9'){
numero+=(int)(cadena[i]-48)*base; //Si es un numero lo coloco el primero
}else{
numero=0;
error=1;
break;
}
}
if(error==1)
printf("Introduce solo numeros"); else
printf("El numero es: %d",numero
); return 0;
}
Con eso tendrias un control sobre lo que se ingresa y puedes filtrar el resultado. Otro modo:
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char cadena[10];
int i,error,numero;
printf("Introduce un valor numerico: "); //Recorro la cadena de derecha a izquierda y voy multiplicando por 10 la base
for(i=0,error=0;cadena[i]!='\0';i++){
if(cadena[i] <= '0' || cadena[i] >= '9'){
error=1;
break;
}
}
if(error == 1){
printf("Introduce solo numeros"); }else{
printf("El numero es: %d",numero
); }
return 0;
}