Breves: Leer de cin después de cerrarlo en C++

written by uve 11 May 2010

Vamos a ponernos en contexto. Estaba escribiendo un programita en C++ el cuál hace uso de una función que lee desde un flujo (en este caso cin) hasta que encuentra EOF. Escribiendo en terminal podemos simular un fin de fichero pulsando Ctrl+D, pero como consecuencia, también cierra el flujo o lo que es lo mismo, ya no podemos seguir leyendo más datos a través de cin. Todo intento de lectura dará un error.

La solución es muy sencilla. Si el flujo se ha cerrado, lo reestablecemos:

if(cin.eof())
   cin.clear();

Y con esto y un bizcocho, hasta mañana a las 8 :)

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é.