Prueba de los estados de error.
c:
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main()
{
int x;
cout << "Antes de una operacion de entrada incorrecta:"
<< "\ncin.rdstate(): " << cin.rdstate()
<< "\n cin.eof(): " << cin.eof()
<< "\n cin.fail(): " << cin.fail()
<< "\n cin.bad(): " << cin.bad()
<< "\n cin.good(): " << cin.good()
<< "\n\nEspera un entero, pero se introduce un caracter: ";
cin >> x;
cout << "\nDespues de una operacion incorrecta:"
<< "\ncin.rdstate(): " << cin.rdstate()
<< "\n cin.eof(): " << cin.eof()
<< "\n cin.fail(): " << cin.fail()
<< "\n cin.bad(): " << cin.bad()
<< "\n cin.good(): " << cin.good() << "\n\n";
cin.clear();
cout << "Despues de cin.clear()"
<< "\ncin.fail(): " << cin.fail()
<< "\ncin.good(): " << cin.good() << endl;
return 0;
} // fin de la función main
using std::cout;
using std::endl;
using std::cin;
int main()
{
int x;
cout << "Antes de una operacion de entrada incorrecta:"
<< "\ncin.rdstate(): " << cin.rdstate()
<< "\n cin.eof(): " << cin.eof()
<< "\n cin.fail(): " << cin.fail()
<< "\n cin.bad(): " << cin.bad()
<< "\n cin.good(): " << cin.good()
<< "\n\nEspera un entero, pero se introduce un caracter: ";
cin >> x;
cout << "\nDespues de una operacion incorrecta:"
<< "\ncin.rdstate(): " << cin.rdstate()
<< "\n cin.eof(): " << cin.eof()
<< "\n cin.fail(): " << cin.fail()
<< "\n cin.bad(): " << cin.bad()
<< "\n cin.good(): " << cin.good() << "\n\n";
cin.clear();
cout << "Despues de cin.clear()"
<< "\ncin.fail(): " << cin.fail()
<< "\ncin.good(): " << cin.good() << endl;
return 0;
} // fin de la función main