C ++ fseek () - C ++ Standart Kitaplığı

C ++ 'daki fseek () işlevi, verilen dosya akışı için dosya konumu göstergesini ayarlar.

Fseek () işlevi başlık dosyasında tanımlanmıştır.

fseek () prototipi

 int fseek (FILE * akış, uzun uzaklık, int kaynak);

Dosya ikili modda açılırsa, dosya işaretçisinin yeni konumu tam olarak orijinden ofset bayttır.

Dosya metin modunda açılırsa, ofset için desteklenen değerler şunlardır:

  • Sıfır: Herhangi bir başlangıç ​​değeri ile çalışır, yani SEEK_SET, SEEK_CUR ve SEEK_END.
  • Bir ftell (akım) çağrısı tarafından döndürülen değer: Yalnızca SEEK_SET'in orijini ile çalışır.

Akış geniş yönelimli ise, hem metin hem de ikili akışların kısıtlamaları uygulanır, yani ftell sonucuna SEEK_SET ile izin verilir ve SEEK_SET ve SEEK_CUR'dan sıfır ofsete izin verilir, ancak SEEK_END için izin verilmez.

Fseek işlevi ayrıca ungetc işlevinin etkilerini geri alır ve varsa dosya sonu durumunu siler.

Bir okuma veya yazma hatası oluşursa, ferror ayarlanır ve dosya konumu etkilenmez.

fseek () Parametreler

  • stream: Değiştirilecek dosya akışı.
  • ofset: Başlangıç ​​noktasından değiştirilecek karakter sayısı.
  • orijin: Ofsete eklemek için referans olarak kullanılan konum. Aşağıdaki değerlere sahip olabilir:
fseek () başlangıç ​​değerleri
Değer Açıklama
SEEK_SET Dosyanın başlangıcı
SEEK_CUR Dosya işaretçisinin mevcut konumu
SEEK_END Dosyanın sonu

fseek () Dönüş değeri

  • Başarı durumunda fseek () işlevi sıfır, aksi takdirde sıfır olmayan bir değer döndürür.

Örnek: fseek () işlevi nasıl çalışır?

 #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; )

Programı çalıştırdığınızda, çıktı:

 İsim: Erica Yaş: 25 Şehir: Berlin

Ilginç makaleler...