valida entrada de enteros a través del bit cin.fail() Man (2004-02-29)
El programa valida las entradas a través del bit de cin.fail(), este bit se activa cuando ha habido un error con el formato del dato, por ejemplo, cuando se espera un entero y se digita un carácter.
// Programa que valida entrada de enteros a través del bit cin.fail()
// Por: Man
// Mail: Schatten@navegante.com.sv
// NOTA: Para los float, double y de mas numericos, se hace similar
// NOTA 2: Es preferible validad leyendo cadenas, es más fiable
// Cualquier sugerencia envíala a mi mail :)
#include <iostream>
using namespace std;
// INICIO DE LA FUNCION main
int main( void )
{
int entero; // variable que almacenara un entero
// solicita la entrada de un entero
cout << "Digite un entero: ";
cin >> entero;
// itera mientras la entrada fracase
while ( cin.fail() )
{
cin.clear(); // hay que limpiar las banderas del cin, colocarlas de nuevo en estado de "bueno"
cin.ignore( 2000, '\n' ); // vacia el buffer de la entrada ya que contiene "basura"
// solicita la entrada de un entero
cout << "\nValor no aceptable\n"
<< "Por favor digite un entero: ";
cin >> entero;
}
// despliega los resultados
cout << "\nEl entero digitado es: " << entero << endl;
// pausa el programa para visualizar los resultados
cin.get();
cin.get();
return 0; // El programa termina con exito
} // fin de main