La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3298 - COLOCAR EL PUNTERO EN EL PRINCIPIO DEL ARCHIVO C++
Autor:  Luis Antonio Victorero Roza
Estoy codificando un programa en C++ que utiliza un fichero para realizar las acciones mas comunes, altas, bajas, consultas y modificaciones, las altas me funcionan bien, pero al hacer consultas abro el archivo y el puntero siempre esta en el final de este, ¿como puedo ponerlo al principio?, otra pregunta sería ¿es mejor codificar este programa con listas enlazadas?, si alguien tiene algún ejemplo le agradecería que me lo enviase, muchas gracias de antemano, un saludo.

  Respuesta:  Fabián Andrés Sierra Carvajal
Es muy improbable que al abrir (con fopen) el archivo esté SIEMPRE al final, a menos que hayas cometido un error. Lo más probable es que estés abriendo un archivo QUE NO HAS CERRADO PREVIAMENTE, es decir, seguramente haces una inserción y luego, sin cerrarlo, lo abres para una consulta. La segunda probabilidad es que lo estés abriendo con la bandera "a" (por ejemplo, archivo=fopen("arc.t","a+");), lo que causa que los nuevos registros se Añadan, es decir, se abra por el final.
Una solución parche (pues deberías corregir el error) es usar rewind(archivo), que lo hace retroceder al inicio; o fseek(0,archivo,SEEK_SET); (creo que esa es la sintaxis); o fsetpos.
¡Suerte!