Программирование >>  Элементы языков с и с++ 

1 ... 58 59 60 [ 61 ] 62 63 64 ... 200


Устанавливает указатель в файле в позицию, отстоящую на п байтов от текущей, а направление перемещения (вперед или назад), задается параметром т, который может быть одним из значений: О, 1, 2 или одной из трех символических констант, определенных в файле stdio.h:

SEEKSET О к началу файла;

SEEKCUR 1 указатель в текущей позиции файла;

SEEKEND 2 К концу файлн.

Функция f seek () используется для ввода/вывода потоком.

Для работы с не потоковыми данными следует использовать функцию IseekO.

После функции f seek о МОЖНО выполнять операции обновления в файлах, открытых для обновления. При удачном заверщении работы fseekO возвращает ноль, в противном случае - иное значение. Функция f seek о возвращает код ощибки, только если файл или устройство не открыты. В этих случаях глобальная переменная errno принимает одно из следующих значений:

EBADF - неверный указатель файла;

EINVAL - неверный аргумент функции;

ESPIPE - поиск на устройстве запрещен. Функция ftellо. Формат:

long int ftell(fp);

Возвращает текущее значение указателя файла f р (т. е. номер теку позиции) в виде значения типа long int. Отсчет идет в байтах от начала файла. Возвращаемое значение может быть использовано в функции fseekO . Если обнаружены ощибки, функция возвращает значение -И присваивает глобальной переменной errno положительное значение.

Функция f scanf ().

Формат:

fscanf(fp,Control,argi,arg2,...,argn) ;

Вводит данные из файла с указателем fp, преобразует их по форматам, записанным в управляющей строке conrtol, и отформатированные данные записывает в аргументы argi,..., argn. Подробные сведения о работе этой функции можно получить, ознакомившись с работой функции



scanf () (функцию scanf () мы рассмотрим в разд. Функции стандартного ввода/вывода далее в этой главе).

П Функция fprintf О .

Формат:

t fprinf(fp. Control, argl, arg2, ..., argn) ;

Выводит данные в файл с указателем fp, преобразует аргументы argl,... ,argn К форматам, которые записаны в управляющей строке Conrtoi, и отформатированные данные записывает в файл. Подробные сведения о работе этой функции можно получить, ознакомившись с работой функции printf о (об этой функции см. разд. Функг/ии стандартного ввода/вывода далее в этой г-паве).

П Функция rewind ().

Формат:

rewind (fp) ;

Устанавливает указатель позиционирования в файле с указателем fp на начало потока. Функция rewind (fp) эквивалентна функции fseek (fp, ol, SEEKSET) за исключением того, что rewind о сбрасывает индикатор конца файла и индикаторы ошибок, а fseek () сбрасывает только индикатор конца файла. После функции rewind () можно выполнять операции обновления для файлов, открытых для обновления. Возвращаемого значения нет.

П Функция f error ().

Формат: terror (fp) ;

Функция тестирует поток на ошибки чтения/записи. Если индикатор ошибки устанавливается, то он остается в таком положении, пока не будут вызваны функции clearerrO или rewindO, или до того момента, пока поток не закроется. Если в файле была обнаружена ошибка, то функция f error о возвращает ненулевое значение.

П Функция freopenO.

Формат:

file *freopen(const char *FILEname, const char *mode, FILE ♦stream) ;

Функция freopenO подставляет файл, заданный в первом параметре, вместо уже открытого потока. Она закрывает поток независимо от того.



Г Листинг 9.1

Мшки ..,...............

/* перенаправление стандартного вывода в файл */ if (freopen( OUTPUT.FIL , w , stdout) == NULL) fprintf(stderr, error redirecting stdoutVn );

/* этот вывод пойдет уже в файл */ printf( This will go into a FILE. );

/* закрытие стандартного потока*/ fclose(stdout);

□ Функция feofO.

Формат:

feof(fp);

Обнаруживает конец файла с указателем fp: тестирует поток на возникновение индикатора конца файла (который наступает после прочтении последней записи). Как только индикатор установлен, операции чтении файла возвращают индикатор до тех пор, пока не выполнена функции rewind () - перемотка в начало файла или пока файл не будет закрыт. Индикатор конца файла переустанавливается с каждой операцией ввода. Функция возвращает ненулевую величину, если индикатор конца файла был обнаружен при последней операции чтения, в противном случае-ноль.

□ Функция ferror (). Формат:

ferror(fp);

открыт ли он. Эта функция полезна для замены файла, связанного со стандартными устройствами ввода/вывода: stdin, stdout или stderr. Способы открытия файла аналогичны таким же в функции f open (). При успешном завершении функция возвращает указатель типа file (как и функция f open ()), при неудачном - null.

Пример перенаправления потока с помощью функции f reopen () приведен в листинге 9.1.



1 ... 58 59 60 [ 61 ] 62 63 64 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика