Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Stakewinner00 en 9 Enero 2013, 19:55 pm



Título: Ayuda delimitar fin de archivo
Publicado por: Stakewinner00 en 9 Enero 2013, 19:55 pm

Hola, he estado buscando pero no encontre lo que buscaba así que espero que con su buena voluntad me puedan ayudar.

Estoy creando un programa que maneja archivos pero me encontre con el problema de no saber como delimitar el fin de un archivo.

Por el momento uso simbulos "raros" para delimitar el final, pero vi que existe el "feof" para la libreria stdio.h y me preguntaba si con la libreria fstream había algo que hiciera lo mismo.

Muchas gracias


pd:recientemente he probado con eof y el texto me sale deformado.


Título: Re: Ayuda delimitar fin de archivo
Publicado por: alvr en 9 Enero 2013, 20:11 pm
Yo suelo utilizar un while() de esta forma:

Código
  1.  
  2. fin = fscanf(archivo, "%d", &numero);
  3.  
  4. while(fin != -1) {
  5.  
  6.    //tu codigo
  7.    fin = fscanf(archivo, "%d", &numero);
  8.  
  9. }
  10.  
  11.  

Con fin lo que haces es obtener el número de datos leídos, en este caso sería uno, ya que solo hay un %d. Cuando fscanf no encuentra más datos que escanear devuelve el valor -1, por eso el ciclo se repite hasta llegar al final.


Título: Re: Ayuda delimitar fin de archivo
Publicado por: Stakewinner00 en 9 Enero 2013, 20:27 pm
ok gracias, despues lo pruebo.


Título: Re: Ayuda delimitar fin de archivo
Publicado por: leosansan en 9 Enero 2013, 21:23 pm
Espero te sirva:
http://www.cplusplus.com/doc/tutorial/files/


Título: Re: Ayuda delimitar fin de archivo
Publicado por: 0xDani en 9 Enero 2013, 22:38 pm
Código
  1. fstream f;
  2. f.open(filename, ios::in | ios::out);
  3. f.seekg(0, ios::end);
  4. long size = f.tellg();
  5. f.seekg(0, ios::beg);
  6.  


Título: Re: Ayuda delimitar fin de archivo [solucionado]
Publicado por: Stakewinner00 en 10 Enero 2013, 15:34 pm
ok, muchas gracias a los 3 creo que ya esta arreglado.

Nose por que cuando usaba .eof me salian caracteres raros...


pd:en algunos casos me salian mensajes con caracteres chinos... que raro