URGENTE: solo numeros en C.
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....
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
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
Alejandro,muchas gracias por tu ayuda.........es lo q andaba buscando.....:D
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
// 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
