Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Файлы.doc
Скачиваний:
14
Добавлен:
24.11.2018
Размер:
171.01 Кб
Скачать

1.3.3. Функции задания положения указателя fseek и fsetpos

Прототип функции fseek :

int fseek (File *f, long off, int org);

Функция перемещает текущую позицию в файле, связанном с потоком f, на позицию off, отсчитываемую от значения org, которое должно быть равно одной из констант, определенных в <stdio.h>:

SEEK_CUR – от текущей позиции указателя (1);

SEEK_END – от конца файла (2);

SEEK_SET - от начала файла (0).

Параметр off задает количество байтов, на которое необходимо сместить указатель соответственно параметру org. Величина смещения может быть как положительной, так и отрицательной, но нельзя сместиться за пределы начала файла. Такой доступ к данным в файле называется произвольным.

Функция возвращает …

Прототип функции fsetpos :

int fsetpos (File *f, const fops_t *pos);

Функция перемещает текущую позицию в файле, связанном с потоком f, на позицию *pos, предварительно полученную с помощью функции fgetpos.

Примечание. Функции fseek и fsetpos нельзя использовать для стандартных потоков.

Функция rewind очищает флаги ошибок при работе с потоками и переходит к началу файла. Ее прототип:

void rewind( File *f );

1.3.4.Функции чтения и записи потока байтов fread и fwrite

Прототип функции fread:

size_t fread (void *buffer, size_t size, size_t count, FILE *stream);

Функция считывает count элементов длиной size байтов в область, заданную указателем buffer, из потока stream. Возвращает количество прочитанных элементов, которое может быть меньше count, если при чтении произошла ошибка или встретился конец файла.

Прототип функции fwrite:

size_t fwrite (const void *p, size_t size, size_t, FILE *);

Функция записывает n элементов длиной size байтов из буфера, заданного указателем p, в поток f. Возвращает число записанных элементов.

1.3.5. Функции чтения символа из потока (getс, fgetс, getchar)

Функция getс, имеющая прототип:

int getc (FILE *f);

возвращает очередной символ в формате int из потока f. Если символ не может быть прочитан, то возвращает значение EOF.

Функция fgetс, имеющая прототип:

int fgetc (FILE *f);

возвращает очередной символ в формате int из потока f. Если символ не может быть прочитан, то возвращает значение EOF.

Функция getchar, имеющая прототип:

int getchar (void);

возвращает очередной символ в формате int из стандартного потока (stdin). Если символ не может быть прочитан, то возвращает значение EOF.

1.3.6. Функции записи символа в поток (putc, fputc, putchar)

Функция puts записывает символ ch в поток f. При ошибке возвращает значение EOF. Ее прототип:

int putc (int ch, FILE *f);

Выполняется аналогично функция fputc. Ее прототип:

int fputc (int ch, FILE *f);

Функция putchar выводит символ ch на стандартное устройство вывода, добавляя в конце символ новой строки. Возвращает неотрицательноу значение при успехе или EOF – при ошибке.

1.3.7. Функции чтения строки из потока (fgets, gets)

Прототип функции fgets:

char *fgets (char *s, int n, FILE *f);

Функция читает не более n-1 байт из потока f в строку s, прекращая чтение при обнаружении символа новой строки или конца файла. Символ новой строки при чтении не отбрасывается, помещается конец строки s. Прочитанная строка дополняется ограничителем строки ('\0'). При обнаружении ошибки или конца файла возвращает NULL, в противном случае – указатель на строку s.

Функция читает символы с клавиатуры до появления символа новой строки и помещает их в строку s. Сам символ новой строки в строку не включается. Возвращает указатель на s. Прототип функции gets:

char *gets (char *s);

1.3.8. Функции записи строки в поток (fputs, puts)

Прототип функции fputs:

int fputs (const char * s, FILE *f);

Функция fputs записывает строку символов s в поток f. Символ конца строки в файл не записывается. При ошибке возвращает значение EOF, иначе – неотрицательное число.

Функция puts выводит строку s на стандартное устройство вывода, добавляя в конце символ новой строки. Возвращает неотрицательное значение при успехе или EOF – при ошибке. Прототип функции puts:

int puts (char *s);