C ++ fseek () - Biblioteca estándar de C ++

La función fseek () en C ++ establece el indicador de posición de archivo para el flujo de archivo dado.

La función fseek () se define en el archivo de encabezado.

prototipo fseek ()

 int fseek (ARCHIVO * flujo, desplazamiento largo, origen int);

Si el archivo se abre en modo binario, la nueva posición del puntero del archivo está exactamente desplazada en bytes desde el origen.

Si el archivo se abre en modo texto, los valores admitidos para el desplazamiento son:

  • Cero: funciona con cualquier valor de origen, es decir, SEEK_SET, SEEK_CUR y SEEK_END.
  • Valor devuelto por una llamada a ftell (stream): solo funciona con el origen de SEEK_SET.

Si el flujo es de orientación amplia, se aplican las restricciones de los flujos de texto y binarios, es decir, se permite el resultado de ftell con SEEK_SET y se permite el desplazamiento cero desde SEEK_SET y SEEK_CUR, pero no SEEK_END.

La función fseek también deshace los efectos de ungetc y borra el estado de fin de archivo, si corresponde.

Si se produce un error de lectura o escritura, se establece el error y la posición del archivo no se ve afectada.

Parámetros de fseek ()

  • secuencia: la secuencia de archivos que se va a modificar.
  • desplazamiento: el número de caracteres que se van a desplazar desde el origen.
  • origen: Posición utilizada como referencia para agregar al desplazamiento. Puede tener los siguientes valores:
valores de origen de fseek ()
Valor Descripción
SEEK_SET Inicio de archivo
SEEK_CUR Posición actual del puntero de archivo
SEEK_END Fin del documento

fseek () Valor de retorno

  • En caso de éxito, la función fseek () devuelve cero, de lo contrario distinto de cero.

Ejemplo: ¿Cómo funciona la función fseek ()?

 #include int main() ( FILE* fp = fopen("example.txt","w+"); char ch; fputs("Erica 25 Berlin", fp); rewind(fp); printf("Name: "); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("Age: "); fseek(fp,10,SEEK_SET); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("City: "); fseek(fp,15,SEEK_SET); while((ch=fgetc(fp))!=EOF) putchar(ch); putchar(''); fclose(fp); return 0; )

Cuando ejecute el programa, la salida será:

 Nombre: Erica Edad: 25 Ciudad: Berlín

Articulos interesantes...