Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con sobrecarga del operador lectura

Estas en el tema de Problema con sobrecarga del operador lectura en el foro de C/C++ en Foros del Web. Hola como puedo leer de un fichero cuatro lineas y asignarlas a un objeto, cada linea seria una variable privada. Sobrecargo el operador >> pero ...
  #1 (permalink)  
Antiguo 13/04/2010, 08:37
 
Fecha de Ingreso: abril-2010
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Problema con sobrecarga del operador lectura

Hola como puedo leer de un fichero cuatro lineas y asignarlas a un objeto, cada linea seria una variable privada. Sobrecargo el operador >> pero no me hace lo que quiero.
Esta es la sobrecarga:
la variableprivada1 es un int la 2 y 3 un string y la 4 un enum;
fstream &operator>> (istream &ci, clase objeto)
{
char c;
ci >> objeto.variableprivada1;
ci >> objeto.variableprivada2;
ci >> objeto.variableprivada3;
ci >> c;
objeto.variableprivada4=enum(c);
}

el fichero seria algo asi:
35
ryhtyhdt
srtghrtsg
rtgrd(enum)
  #2 (permalink)  
Antiguo 15/04/2010, 10:01
 
Fecha de Ingreso: abril-2010
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con sobrecarga del operador lectura

Cita:
Iniciado por elmago_rm Ver Mensaje
Hola como puedo leer de un fichero cuatro lineas y asignarlas a un objeto, cada linea seria una variable privada. Sobrecargo el operador >> pero no me hace lo que quiero.
Esta es la sobrecarga:
la variableprivada1 es un int la 2 y 3 un string y la 4 un enum;
fstream &operator>> (istream &ci, clase objeto)
{
char c;
ci >> objeto.variableprivada1;
ci >> objeto.variableprivada2;
ci >> objeto.variableprivada3;
ci >> c;
objeto.variableprivada4=enum(c);
}

el fichero seria algo asi:
35
ryhtyhdt
srtghrtsg
rtgrd(enum)
LO que quiero que haga es que lea un fichero con varias lineas estructuradas como dije antes y se guarde la informacion en objetos.
  #3 (permalink)  
Antiguo 15/04/2010, 10:49
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema con sobrecarga del operador lectura

Lo que ocurre es que no funciona o no compila?
  #4 (permalink)  
Antiguo 15/04/2010, 11:44
 
Fecha de Ingreso: abril-2010
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con sobrecarga del operador lectura

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
Lo que ocurre es que no funciona o no compila?
No funciona
  #5 (permalink)  
Antiguo 15/04/2010, 13:16
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema con sobrecarga del operador lectura

En la declaracion del operador cambia

clase objeto

por

clase& objeto
  #6 (permalink)  
Antiguo 15/04/2010, 13:31
 
Fecha de Ingreso: abril-2010
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con sobrecarga del operador lectura

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
En la declaracion del operador cambia

clase objeto

por

clase& objeto
Ya lo he probado y leer lo lee pero solo el conjunto de los cuatro primeros datos, es decir el primer objeto. Por tanto si muestro el array de objetos, tan solo el primero contiene la informacion. Y lo que quiero es que cada cuatro lineas del fichero separadas por espacio se almacenen en un objeto.
Gracias de todos modos
  #7 (permalink)  
Antiguo 15/04/2010, 13:38
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema con sobrecarga del operador lectura

Y el codigo q (no) hace eso, cual es?
  #8 (permalink)  
Antiguo 15/04/2010, 14:15
 
Fecha de Ingreso: abril-2010
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con sobrecarga del operador lectura

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
Y el codigo q (no) hace eso, cual es?
en el programa principal :

for(i=0;i<50;i++)
{
fichero >> objeto[i];
}

Etiquetas: lectura, operador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.