• Lunes 29 de Abril de 2024, 07:11

Autor Tema:  Lectura desde entrada estándar con iteradores  (Leído 1107 veces)

meana

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Lectura desde entrada estándar con iteradores
« en: Jueves 14 de Abril de 2011, 20:30 »
0
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.  

meana

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Lectura desde entrada estándar con iteradores
« Respuesta #1 en: Sábado 16 de Abril de 2011, 13:32 »
0
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.