[C con Clase] Problema con cin

Oscar Aparicio Holgado pelucheloko en hotmail.com
Mie Jun 19 23:47:50 CEST 2013


Gracias por los apuntes Steven, ahora si funciona.
Un saludo.

Date: Tue, 18 Jun 2013 20:22:55 -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 Steven
Sigue sin ir, se termina la ejecución del programa después del segundo cout.

Es verdad. Se me olvidó comentarte que los caracteres siguen estando dentro del canal de entrada. Tendrás que sacarlos.


Puedes usar 'ignore()'; esto es,
cin.ignore();


Te pego el código entero por si acaso.

Te comento acerca de algunas cosas que vi en tu código fuente.

#include "std_lib_facilities.h"


int main()try
Debería ser:

int main()
{
  try

  {
  ...
  }

  return 0;}

{    vector<int> a;    int numero;    cout << "Entra numeros (usa | para parar de meter numeros) ";

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


A continuación invocarías 'ignore()'.


    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");



Deberías usar el mismo de 'vector' para representar la cantidad. Esto es,

vector<int>::size_type cuantos;
Supongo que creaste la función 'error()' en alguna parte previa.


//    funcion1(cuantos);    for(int i = 0; i < cuantos; ++i)

    {        cout << a[i] << ", ";
Esto funcionará, pero el operador [] sobrecargado no producirá una excepción. Te interesa usar la función miembro 'at()' si quieres capturar excepciones generadas por ella.


    }


    return 0;}
catch (exception& e) {

    cerr << "error: " << e.what() << '\n';    return 1;}

catch (...) {    cerr << "Oops: unknown exception!\n";
Acostúmbrate a usar 'endl' en lugar de usar el carácter, '\n'.


    return 2;}




Espero que esto te sirva.
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/20130619/67146a0d/attachment.html>


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