[C con Clase] Problema con cin

Oscar Aparicio Holgado pelucheloko en hotmail.com
Mar Jun 18 23:30:44 CEST 2013


Hola Steven
Sigue sin ir, se termina la ejecución del programa después del segundo cout.
Te pego el código entero por si acaso.
#include "std_lib_facilities.h"
int main()try{    vector<int> a;    int numero;    cout << "Entra numeros (usa | para parar de meter numeros) ";    while (cin >> numero) a.push_back(numero);
    cin.clear();
    cout << "Entra cuantos numeros de los introducidos quieres sumar. ";    int cuantos;    cin >> cuantos;
    if (cuantos > a.size()) error ("Has escogido más números de los que has introducido");
//    funcion1(cuantos);    for(int i = 0; i < cuantos; ++i)    {        cout << a[i] << ", ";    }
    return 0;}
catch (exception& e) {    cerr << "error: " << e.what() << '\n';    return 1;}catch (...) {    cerr << "Oops: unknown exception!\n";    return 2;}
Un saludo.

Date: Tue, 18 Jun 2013 15:55:53 -0400
From: srd4121 en njit.edu
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] Problema con cin

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



_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130618/7fc2fddc/attachment.html>


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