URGENTE: solo numeros en C.

AITOR
18 de Abril del 2004
necesito saber como puedo hacer para q el programa solo me deje introducir numeros. Ya q es un programa para calcular areas,y cuando introduzco una letra me sale 0.00,lo q qiero esq solo me deje introducir numeros......muchas gracias....

Alejandro_
18 de Abril del 2004
Una alternativa:

char a[11]= {0}; // declara e inicializa a 0.
scanf("%10[0-9]", a); // lee de de la entrada sólo 10 caracteres entre 0 y 9.
fflush(stdin); // barre el flujo de entrada.
int i = atoi(a); // convierte a entero.


También, si una dimensión == 0 no se considera válida para el cálculo de un área:

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

Alejandro

AITOR
18 de Abril del 2004
Alejandro,muchas gracias por tu ayuda.........es lo q andaba buscando.....:D

noel solw
18 de Abril del 2004
Te mando el programa para numeros enteros, si lo quieres para float, con pocos cambios lo vas a tener.

// program numeros.cpp

#include <iomanip.h>
#include <iomanip.h>
#include <stdlib.h>
#include <ctype.h>

int Check(char *a)
{
for(int i = 0;a[i];i++)
if(!isdigit(a[i]))
return 0;
return 1;
} // CHECK

long GetNum()
{
char a[15];
do
{
cout << "entre solo cifras digitales : ";
cin >> a;
} while(!Check(a));
return atol(a);
} // GET NUM

void main()
{
for(long num = GetNum();num;num = GetNum())
cout << num << endl;
cout << "end of program - good bye ! ! !" << endl;
} // MAIN