Autor Tema: Lectura de un archivo en c++ , no anda urgente!

0 Usuarios y 1 Visitante están viendo este tema.

09 Diciembre, 2009, 11:24 pm
Leído 1993 veces

Watt

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 328
  • Karma: +0/-0
  • Sexo: Masculino
  • Dos numeros manejan el mundo?
Hola disculpen el titulo pero no puedo perder tiempo con este problemita, tengo el siguiente codigo que simplemente lee un archivo de texto.

Código: [Seleccionar]
#include<iostream>
#include<fstream>

#define MAX 80
#define ARCH "hola.txt"

using namespace std;

int main(void)
{
char buffer[MAX];
fstream obj;

obj.open(ARCH,ios::in);

while(!obj.eof())
{
obj.getline(buffer,MAX);
cout << buffer;
}

cin.get();
return 0;
}

El problema es que al ejecutarse, solo muestra una linea del texto y no hace nada, me estoy comiendo alguna instruccion?.

Desde ya gracias y saludos!.

10 Diciembre, 2009, 12:48 am
Respuesta #1

Watt

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 328
  • Karma: +0/-0
  • Sexo: Masculino
  • Dos numeros manejan el mundo?
Bueno ya me di cuenta del problema, pero surgio otro quiero leer el mismo arcivho dos veces pero no lo hace, funciona la funcion que deje comentada?


Código: [Seleccionar]
#include<iostream>
#include<fstream>

#define MAX 100
#define ARCH "hola.txt"

using namespace std;

void leer(fstream*);

int main(void)
{

fstream *obj=new fstream;

obj->open(ARCH,ios::in);

leer(obj);
   
obj->seekg(0,ios::beg); //Vuelve el puntero al inicio del archivo ?

leer(obj); //Esto no lee nada..

cin.get();
return 0;
}

void leer(fstream *obj)
{
char buffer[MAX];

while(!obj->eof())
{
obj->getline(buffer,MAX);
cout << buffer;
}
}


10 Diciembre, 2009, 05:23 am
Respuesta #2

topo23

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 937
  • Karma: +0/-0
Creo que tienes que llamar a obj->clear(), no me acuerdo si es antes o despues del seekg.
.

12 Diciembre, 2009, 05:02 am
Respuesta #3

Watt

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 328
  • Karma: +0/-0
  • Sexo: Masculino
  • Dos numeros manejan el mundo?
Justamente fue antes , gracias!