C ++ fseek () - C ++ standardowa biblioteka

Funkcja fseek () w C ++ ustawia wskaźnik pozycji pliku dla danego strumienia pliku.

Funkcja fseek () jest zdefiniowana w pliku nagłówkowym.

fseek () prototyp

 int fseek (PLIK * strumień, długie przesunięcie, int początek);

Jeśli plik jest otwierany w trybie binarnym, nowa pozycja wskaźnika pliku jest dokładnie przesunięta w bajtach od początku.

Jeśli plik jest otwarty w trybie tekstowym, obsługiwane wartości przesunięcia to:

  • Zero: działa z dowolną wartością pochodzenia, tj. SEEK_SET, SEEK_CUR i SEEK_END.
  • Wartość zwracana przez wywołanie ftell (strumień): działa tylko z początkiem SEEK_SET.

Jeśli strumień jest zorientowany na szerokość, stosowane są ograniczenia zarówno strumieni tekstowych, jak i binarnych, tj. Wynik ftell jest dozwolony z SEEK_SET, a przesunięcie zerowe jest dozwolone z SEEK_SET i SEEK_CUR, ale nie z SEEK_END.

Funkcja fseek również cofa efekty ungetc i czyści stan końca pliku, jeśli ma to zastosowanie.

Jeśli wystąpi błąd odczytu lub zapisu, ustawiany jest ferror, a pozycja pliku pozostaje niezmieniona.

fseek () Parametry

  • stream: strumień pliku do zmodyfikowania.
  • offset: liczba znaków do przesunięcia z początku.
  • początek: położenie używane jako odniesienie do dodania do odsunięcia. Może mieć następujące wartości:
wartości początkowe fseek ()
Wartość Opis
SEEK_SET Początek pliku
SEEK_CUR Bieżąca pozycja wskaźnika pliku
SEEK_END Koniec pliku

fseek () Zwraca wartość

  • Po pomyślnym zakończeniu funkcja fseek () zwraca zero, w przeciwnym razie wartość niezerową.

Przykład: Jak działa funkcja 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; )

Po uruchomieniu programu wynik będzie następujący:

 Imię: Erica Wiek: 25 lat Miasto: Berlin

Interesujące artykuły...