Ayuda delimitar fin de archivo

Iniciado por Stakewinner00, 9 Enero 2013, 19:55 PM

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

Stakewinner00


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.

alvr

Yo suelo utilizar un while() de esta forma:



fin = fscanf(archivo, "%d", &numero);

while(fin != -1) {

    //tu codigo
    fin = fscanf(archivo, "%d", &numero);

}



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.

Stakewinner00


leosansan


0xDani

Código (cpp) [Seleccionar]

fstream f;
f.open(filename, ios::in | ios::out);
f.seekg(0, ios::end);
long size = f.tellg();
f.seekg(0, ios::beg);
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Stakewinner00

#5
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