[C con Clase] Problema con cin

Davidson, Steven srd4121 en njit.edu
Mar Jun 18 21:55:53 CEST 2013


Hola Óscar,

2013/6/18 Oscar Aparicio Holgado <pelucheloko en hotmail.com>

> Hola que tal.
>
> Tengo este trozo de código:
>
> vector<int> a;
>     int numero;
>     cout << "Entra numeros (usa | para parar de meter numeros) ";
>     while (cin >> numero) a.push_back(numero);
>
>     cout << "Entra cuantos numeros de los introducidos quieres sumar. ";
>     int cuantos;
>     cin >> cuantos;
>
> La cosa es que cuando le doy a ejecutar después de introducir el caracter
> | para cortar el while de la cuarta línea directamente termina y ya no se
> para en el cin segundo del código, ¿por qué? ¿cómo puedo solucionarlo?
>
>
Se sale del bucle 'while' porque el canal, 'cin', está en un estado de
fallo (o fracaso). Esto se implementa en el objeto 'cin' activando un
banderín interno.

Lo que tienes que hacer es despejar este banderín de fallo. Invoca la
función miembro 'clear()'; esto es,

while( cin >> numero )
  a.push_back( numero );

cin.clear();


Espero haber aclarado la duda.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130618/20dd1ead/attachment.html>


Más información sobre la lista de distribución Cconclase