Ayuda con sentencias de biblioteca ctype.h
Hola, tengo un problema con un programa en donde tengo que introducir numeros enteros, pero el problema está en que si el usuario introduce una letra o un caracter cualquiera el programa tiene que decirme que no puede realizar el programa con ese tipo de datos. Sé que se utiliza para esto la biblioteca ctype.h y algunas sentencias como isalpha( ), isalphanum( ), ispunct( ) .... o algo asi pero esas sentencias no se como utilizarlas, y si me pueden dar otras que me sean utiles para este tipo de programas sencillos. A continuacion coloco un código fuente sencillo para ver si me pueden ayudar en donde puedo colocar estas sentencias.
Gracias de antemano.
#include<iostream.h>
void main()
{
int a, b, c;
cout<<"Introduzca el primer numero ";
cin>>a;
cout<<"Introduzca el segundo numero ";
cin>>b;
c=a+b;
//ahora aqui me imagino que deberian ir esas sentencias antes mencionadas para que el usuario solo pueda introducir numeros enteros//
cout<<c;
}
Gracias de antemano.
#include<iostream.h>
void main()
{
int a, b, c;
cout<<"Introduzca el primer numero ";
cin>>a;
cout<<"Introduzca el segundo numero ";
cin>>b;
c=a+b;
//ahora aqui me imagino que deberian ir esas sentencias antes mencionadas para que el usuario solo pueda introducir numeros enteros//
cout<<c;
}
Te envio un programa que chequea los caracteres introducidos y acepta solo cifras digitales.
Podrias agregar una mejora : revisar que la magnitud el numero introducido no sobrepase el limite de los
integrales.
// 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
Podrias agregar una mejora : revisar que la magnitud el numero introducido no sobrepase el limite de los
integrales.
// 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
