#include <iostream>
#include <string>
using namespace std;
bool enteroValido(string); // prototipo de la funciĂłn
int main()
{
string valor;
int numero;
cout << "Introduzca un numero entero: ";
getline(cin, valor);
if (!enteroValido(valor))
cout << "El numero que introdujo no es un numero entero valido.";
else
{
numero = atoi(valor.c_str());
cout << "El numero entero que introdujo es " << numero;
}
return 0;
}
bool enteroValido(string str)
{
int inicio = 0;
int i;
bool signo = false; // asume que no es signo
// comprueba una cadena vacĂa
if (str.length()== 0)
return false;
// comprueba un signo a la izquierda
if (str.at(0) == '-'|| str.at(0) == '+')
{
signo = true;
inicio = 1; // comienza a comprobar los dĂgitos despuĂ©s del signo
}
// comprueba que hay al menos un carácter después del signo
if (signo && str.length() == 1)
return false;
// ahora comprueba la cadena, la cual sabemos que tiene al menos un
//carácter que no es un signo
i = inicio;
while(i < str.length())
{
if(!isdigit(str.at(i)))
return false; // encuentra un carácter que no es dĂgito
i++; // se mueve al siguiente carácter
}
return true;
}