Използвайте функцията fseek

Четенето от файл се извършва последователно, т.е. след изпълнение на следващата операция за четене, курсорът ще бъде настроен на следващия непрочетени характер. Можете да промените позицията на показалеца, като използвате функцията fseek (). Той се използва за преместване на указателя на файла към определена позиция. Функцията fseek () е посочена в стандартната библиотека c език - stdio.h, така че началото на програмата, в която ще се използва функцията, трябва да бъде декларацията: #include.

Описание на функцията fseek в

Int fseek (ФАЙЛ * FilePointer, дълъг офсет, int pos) - Следните аргументи се предават на функцията:
  • FILE * FilePointer - указателят към обекта FILE. Преди да използвате функцията, трябва да отворите файла с помощта на fopen ().
  • Отместване - даден аргумент във функцията се предава, колко байт показалеца трябва да бъде изместен. Напишете long integer (long int). Положителната стойност на параметъра означава отместването надясно, а отрицателното наляво.
  • Поз - определя позицията, от която се добавя отместването. Типът на този аргумент е integer (int).
  • Параметър pos определя началната точка, от която ще се приспада отместването. Тя може да приеме три стойности - 012, които са еквивалентни на символните константи SEEK_SET

    , SEEK_CUR

    и SEEK_END

    :


  • Стойността на параметъра pos е SEEK_SET - отместването ще бъде определено по отношение на началото на файла ,
  • Когато SEEK_CUR е равен, отместването се счита от текущата позиция на курсора.
  • Ако има стойност SEEK_END, тогава отместването ще бъде приспаднато от края на файла.
  • Функцията fseek връща нула в случай на успешен ход на показалеца и на всяко другоненулева стойност, ако не успя да изпълни желаното действие, например в случай на чуждестранен изходен файл с индекс. Връщаната стойност ще бъде равна на EBADF, когато изпращате грешен указател на файла, EINVAL в случай на невалидна стойност на аргумента или ESPIPE с грешка в параметъра за отместване, например извън границата на файла.

    Пример



    Програма



    Описание



    # включи

    int main ()

    [

    FILE * fp;

    fp = fopen ("test.txt", "r");

    fseek (fp, 7 SEEK_CUR);

    printf ("% ld", ftell (fp));

    fclose (fp);

    връщане 0;

    }



    Свържете стандартната езикова библиотека с stdio.h Посочете файловата променлива Отворете файла за четене Преместваме курсора до 7 байта преди текущата позиция (Тъй като ние само отворихме файла, курсорът е в началото.) Отпечатваме текущата позиция на курсора с функцията ftell () Затваряме файла

    Освен разглежданите, има и други функции за работа с показалеца, например:
  • Rewind () - Използва се за поставяне на курсора в началото на файла.
  • Ftell () - Връща позицията на показалеца в момента.
  • Feof () - служи за идентифициране на края на файла. Когато краят на файла достигне стойността на функцията, ще бъде вярно.
  • Заключителни бележки

    При работа с тази функция е необходимо да се помни, че работи само със стрийминг вход-изход. Също така, не забравяйте да затворите файла с fclose ().

    Свързани публикации