[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