а) Функции форматированного ввода и вывода в файловый поток.
1) Функция fgetc () имеет следующий прототип:
int fgetc(FILE *stream);
Она осуществляет ввод символа из файлового потока stream.
2) Функция fputcO имеет следующий прототип:
int fputc(int с, FILE *stream) ;
Она осуществляет вывод символа в файловый поток.
3) Функция fgets () имеет следующий прототип:
char *fgets(char *s, int n, FILE *stream);
Она осуществляет чтение строки символов из файлового потока в строку s. Функция прекращает чтение, если прочитано n - 1 символов или встретился символ перехода на новую строку ' \n'.
4) Функпия fputs () имеет следующий прототип:
int: fputs(const char *s, FILE *stream);
Осуществляет вывод строки в файловый поток.
5) Функция fscanf () имеет следующий прототип:
int fscanf(FILE *stream,
const char *format[, address, . . . ] ) ;
Осуществляет форматированный ввод из файлового потока.
6) Функция fprintf() имеет следующий прототип:
int fprintf(FILE *stream,
const char *format[, argument, . . , ]) ;
Осуществляет форматированный вывод в файловый поток.
7) Функция f*eof() является на самом деле макросом и позволяет осуществлять проверку на достижение символа конца файла при операциях ввода-вывода.
Она имеет следующий прототип:
int feof(FILE *stream);
б) Функции неформатированного ввода и вывода в файловый поток.
1) Функция fread () имеет следующий прототип:
size_t
fread(void *ptr, size_t size,
size_t nf FILE *stream);
Эта функция считывает из потока stream в буфер, указанный параметром ptr, n блоков данных, каждый из которых содержит size байтов.
2) Функция fwrite () имеет следующий прототип:
size_jt
fwrite(const void *ptr, size_t size,
size_t n, FILE *stream);
Она записывает в выходной поток stream из буфера, указанного параметром ptr, n блоков данных, каждый из которых содержит size байтов.
Сам. работа. Пример пример, демонстрирующий работу с функциями неформатированного ввода и вывода в файловые потоки. стр.206
Когда файл открывается для записи или чтения, с ним связывается структура FILE, определенная в заголовочном файле <stdio.h>. Эта структура связывает с каждым открытым файлом счетчик положения текущей записи. Сразу после открытия файла его значение равно 0. Каждая операция вызывает приращение значения этого счетчика на число записанных или прочитанных из файла байтов. Функции позиционирования - позволяют изменять или получать значение счетчика, связанного с файлом.
1) Функция ftell() возвращает текущее значение счетчика, связанного с файлом. Она имеет следующий прототип:
long int ftell(FILE *stream);
2) Функция fseek () имеет следующий прототип:
int: fseek(FILE *stream, long offset,
int from);
Эта функция изменяет позиционирование файлового потока stream (изменяя значение указанного счетчика) на offset относительно позиции, определяемой параметром from. Для потоков в текстовом режиме параметр offset должен быть равен 0 или значению, возвращаемому функцией ftell (). Параметр from может принимать следующие значения:
SEEK_SET (=0) начало файла;
SEEK_CUR (=1) текущая позиция в файле;
SEEKJEND (=2) конец файла.
3) Функция rewind () имеет следующий прототип:
void rewind(FILE *stream);
Она устанавливает файловый указатель позиции в начало потока.
Сам. работа Пример демонстрирующий pa6oту этих функций позиционирования стр.208