C ++ fseek () - Libreria standard C ++

La funzione fseek () in C ++ imposta l'indicatore di posizione del file per il flusso di file specificato.

La funzione fseek () è definita nel file di intestazione.

prototipo fseek ()

 int fseek (FILE * stream, offset lungo, int origin);

Se il file viene aperto in modalità binaria, la nuova posizione del puntatore del file è esattamente offset di byte dall'origine.

Se il file viene aperto in modalità testo, i valori supportati per l'offset sono:

  • Zero: funziona con qualsiasi valore di origine, ad esempio SEEK_SET, SEEK_CUR e SEEK_END.
  • Valore restituito da una chiamata a ftell (stream): funziona solo con l'origine di SEEK_SET.

Se il flusso è orientato al largo, vengono applicate le restrizioni sia del testo che dei flussi binari, cioè il risultato di ftell è consentito con SEEK_SET e lo zero offset è consentito da SEEK_SET e SEEK_CUR, ma non SEEK_END.

La funzione fseek annulla anche gli effetti di ungetc e cancella lo stato di fine file, se applicabile.

Se si verifica un errore di lettura o scrittura, ferror viene impostato e la posizione del file non viene modificata.

Parametri fseek ()

  • stream: il flusso di file da modificare.
  • offset: il numero di caratteri da spostare dall'origine.
  • origine: posizione utilizzata come riferimento da aggiungere all'offset. Può avere i seguenti valori:
fseek () valori di origine
Valore Descrizione
SEEK_SET Inizio del file
SEEK_CUR Posizione corrente del puntatore del file
SEEK_END Fine del file

fseek () Restituisce il valore

  • In caso di successo la funzione fseek () restituisce zero, altrimenti diverso da zero.

Esempio: come funziona la funzione 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; )

Quando esegui il programma, l'output sarà:

 Nome: Erica Età: 25 Città: Berlino

Articoli interessanti...