SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: meana en Jueves 14 de Abril de 2011, 20:30

Título: Lectura desde entrada estándar con iteradores
Publicado por: meana en Jueves 14 de Abril de 2011, 20:30
Hola estoy haciendo un pequeño programa que debe leer de la entrada estandar una serie de datos para almacenarlos en un vector. La entrada estandar la redirijo desde un fichero, es decir la llamada al ejecutable la hago de la siguiente forma: ./nombre_ejecutable < fichero.txt (uso linux) el problema esta en que solo me lee el primer dato del fichero y llevo toda la tarde mirando y no se que podra ser...
este es el codigo del programa principal la clase Piloto tiene implementado tanto el operador de entrada como el de salida
Código: C++
  1.  
  2. #include"Pilotos.h"
  3. #include<algorithm>
  4. #include<iostream>
  5. #include<iterator>
  6. #include<vector>
  7.  
  8. using namespace std;
  9.  
  10. int main(){
  11.  
  12.   vector<piloto> pilotos;
  13.   istream_iterator<piloto> piloto_in(cin);
  14.   copy(piloto_in, istream_iterator<piloto>(), back_inserter(pilotos));
  15.   for(int i = 0; i<pilotos.size(); i++){
  16.     cout << pilotos[i] << "**********" <<endl;
  17.   }
  18.  
  19.   return 0;
  20. }
  21.  
  22.  
Título: Re: Lectura desde entrada estándar con iteradores
Publicado por: meana en Sábado 16 de Abril de 2011, 13:32
he estado mirando y ahoramismo creo que el problema solo puede estar en el copy que me mete los datos al vector o en el operador de entrada de la clase piloto...
este es el operador de entrada
Código: C++
  1.  
  2. istream & operator >> (istream &in, piloto &p){
  3.   getline(in, p.nombre);
  4.   in >> p.numero;
  5.   in.ignore();
  6.   in >> p.moto >> p.pais;
  7.  
  8.  
  9.   return in;
  10. }
  11.  
  12.