Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemillas con "feof"

Iniciado por Depredator, 24 de Abril de 2003, 11:18:42 PM

« anterior - próximo »

Depredator

                                Estoy haciendo un programa que debe leer todas las palabras de un texto que esta en un archivo, el archivo se carga correctamente, leo las palabras, pero para hacerlo parar quiero hacer un bucle hasta que llegue al final del fichero.
He pensado hacer el bucle de esta forma:

while(feof(mifichero)!=0)
{
...
}

pero depurando veo que feof(mifichero) devuelve 0 en ese momento.
He abierto el fichero de esta forma:

mifichero = fopen("texto.txt","r");

Uso Dev-C++
Alguna idea?
Gracias.                                
enemos dos oidos y una boca para hablar menos y escuhar más...

(Proverbio Chino)

kurosawa

                                bnas :

No se si te servira, pero bueno :


while(!feof(f_out))

   {

         buffer=fgetc(f_out);

            printf("%c",buffer);          

         contador++;

   }

   fclose(f_out);



Esto lo que hace es leer hasta el final. Saludos y suerte                                

HgH

                                Esto es de la ayuda de VC.  Imagino que será lo mismo para gcc (era el compilador que usaba el Dev-C, ¿no?)

"The feof function returns a nonzero value after the first read operation that attempts to read past the end of the file. It returns 0 if the current position is not end of file. There is no error return."
Tendrías que hacer algo como


while(!feof(mifichero))

{

 //Leer del fichero

}



o


while(feof(mifichero)==0)

{

 //Leer del fichero

}

                               
gH _ TLOTB
..................
"No queremos estar obligados, por nada ni nadie, a pensar sólo en lo que es más comercial. Siempre seremos, antes que nada, programadores"

- Equipo de Zigurat -

tamat

                                ¿abres el fichero en modo ASCII o en modo Binario? es que yo tuve problemas con una lectura porque el fichero era binario y lo abria en modo ascii por lo que al encontrar un byte que correspondia con el valor EOF dejaba de leer.                                
Por un stratos menos tenso

kurosawa

                                Pues a mi me funciona igual en ambos compiladores, ya que el codigo esta siendo todo el rto portado de win a linux .

Igualmente , veo de buenas maneras declarar la manera de abbrir un fichero , siempre haciendo un 'rb' o 'rt' ya que asi tenemos claro despues de un tiempo , en el caso que no hayamos comentado, ded que demoniso esta compuesto ese tipo de fichero.                                

Depredator

                                Muxas gracias a todos, era lo que HgH dice, me confundi de cabo a rabo xD, la funcion devuelve cero mientras NO encuentre el final del archivo, y yo pensaba q pasaba este valor al encontrarlo  :loco:
Una vez corregido ya hace lo que keria, gracias a todos de nuevo!                                
enemos dos oidos y una boca para hablar menos y escuhar más...

(Proverbio Chino)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.