Breves: Forzar la lectura de un entero en C++

written by uve 11 May 2010

Cuando estamos programando en C++ y leemos un entero por terminal, nadie garantiza que realmente se lea. Imaginemos lo siguiente:

int entero;
cin >> entero;

Y cuando se ejecuta el programa, el usuario escribe una 'a'. ¿Qué ocurre? Pues que el programa se sigue ejecutando y el entero no se ha leído.

Una de las posibles soluciones, es forzar la lecutra de un entero de la siguiente forma:

#include <iostream>

using namespace std;

int main()
{
    int entero;
    cout << "Introduce un entero:";
    while(!(cin >> entero))
    {
        cin.clear();
        cout << "Caracter incorrecto" << endl;
        cin.get();
    }
    cout << "Entero:" << entero << endl;
    return 0;
}

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.