Lectura de archivos en c o c++

gustavopulgar83
07 de Julio del 2003
necesito desarrollar un procedimiento q lea de un archivo una linea,la procese, salga de ese procedimiento y luego, en otr ocasión el mismo procedimiento sea llamado pero me lea la linea siguiente del archivo. Alguien sabe como puedo hacerlo??

chuidiang
07 de Julio del 2003
Tienes varias opciones.

Una es pasar el descriptor de fichero ya abierto. De esta forma, al ir leyendo, cada vez se leera una linea nueva. El problema es que tienes que abrir el fichero fuera de la funcion y pasarlo cada vez.

Otra opción es usar una variables estática local dentro de la función que sea el descriptor de fichero. Algo asi como

void funcion ()
{
static FILE *fichero = NULL;

if (fichero == NULL)
{
fichero = fopen (...);
}

/* Leer y tratar una linea */
...
}

Al ser estatica, esta variable se mantiene de llamada a llamada de funcion. El if con el fopen solo se ejecutara la primera vez que llames a la funcion.

La pega de este metodo es que esta funcion solo sirve para un fichero.

Si usas C++ lo mejor es que hagas una clase en la que un atributo seria el FILE en cuestion. El metodo de leer leeria del FILE. Puedes usar varios ficheros instanciando la clase varias veces.

Se bueno.