C ++ fseek () - Стандартна бібліотека C ++

Функція fseek () в C ++ встановлює індикатор положення файлу для даного потоку файлів.

Функція fseek () визначена у файлі заголовка.

прототип fseek ()

 int fseek (FILE * потік, довгий зсув, походження int);

Якщо файл відкрито в двійковому режимі, нова позиція вказівника на файл точно зміщується в байтах від початку.

Якщо файл відкрито в текстовому режимі, підтримуються значення зміщення:

  • Нуль: Він працює з будь-яким значенням походження, тобто SEEK_SET, SEEK_CUR та SEEK_END.
  • Значення, повернене викликом ftell (stream): воно працює лише з початком SEEK_SET.

Якщо потік широко орієнтований, застосовуються обмеження як текстових, так і двійкових потоків, тобто результат ftell допускається за допомогою SEEK_SET і нульове зміщення від SEEK_SET та SEEK_CUR, але не SEEK_END.

Функція fseek також скасовує ефекти ungetc та очищає стан кінця файлу, якщо це можливо.

Якщо виникає помилка читання або запису, встановлюється ferror, і позиція файлу не змінюється.

Параметри fseek ()

  • потік: потік файлів, який потрібно змінити.
  • зміщення: кількість символів, які слід витіснити з початкової точки.
  • початок: Позиція, яка використовується як посилання для додавання до зміщення. Він може мати такі значення:
значення походження fseek ()
Значення Опис
SEEK_SET Початок файлу
SEEK_CUR Поточне положення вказівника на файл
SEEK_END Кінець файлу

fseek () Повернене значення

  • Після успіху функція fseek () повертає нуль, інакше ненульове значення.

Приклад: Як працює функція 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; )

Коли ви запускаєте програму, результат буде:

 Ім'я: Еріка Вік: 25 Місто: Берлін

Цікаві статті...