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

Приложение.

Базовые функции ввода-вывода.

1. Открыть файловый поток

FILE * fopen(const char *FILEname, const char *mode);

Const char *filename – указатель на строку имени файла, которая может содержать информацию о дисководе и каталогах.

Const char *mode – режим доступа.

2. Закрыть поток.

int fclose(FILE *stream); //stdio.h

FILE *stream – файловый поток, открытый ранее функцией

fopen() или аналогичной ей функцией.

3. Проверить признак конца файлового потока.

int feof(FILE *stream); //stdio.h

FILE *stream – любой открытый файловый поток.

4. Определить признак ошибки в потоке

int ferror(FILE *stream); //stdio.h

возвращает ненулевое значение («истина»), если во время обработки данного потока возникали ошибки. В противном случае возвращает нуль («ложь»).

FILE *stream – любой открытый файловый поток.

5. Получить символ.

int fgetc(FILE *stream); //stdio.h

Читает один символ из открытого файлового потока. В случае успеха возвращает значение символа. Если внутренний указатель файла находится за его концом или при возникновении ошибок, возвращает EOF.

6. Записывает символ в поток.

int fputc(int c, FILE *stream); //stdio.h

int c – записываемое значение символа

FILE *stream – указатель на файловый поток

7. Получить строку.

Char *fgets(char *s, int n, FILE *stream); //stdio.h

Последовательно читает из открытого файлового потока FILE *stream символы вплоть до следующего символа новой строки, включая его, или максимум n-1 символов. Прочитанные символы помещаются, начиная с ячейки, адресуемой аргументом сhar *s. К концу строки присоединяется символ новой строки, если он прочитан, а также нулевой символ. В случае успеха возвращает char *s, а в случае ошибки – нуль.

8. Поместить строку в поток.

int fputs(const char *s, FILE *stream); //stdio.h

Записывает завершающуюся нулем строку символов в заданный поток.

const char *s – указатель на завершающуюся нулем строку, записываемую в выходной поток.

FILE *stream – указатель на открытый файловый поток.

9. Читать данные из потока.

size_t fread(void *ptr, size_t size, size _t n, FILE *stream); //stdio.h

Читает из файлового потока данные, начиная с текущего файлового указателя.

После чтения данных функцией fread() файловый указатель будет расположен непосредственно за последним прочитанным байтом. Чтобы позиционировать файловый указатель до начала чтения, можно воспользоваться функцией fseek(). fread() возвращает число прочитанных элементов. Число прочитанных байтов равно результату функции, умноженному на число байтов в элементе. В случае неудачи или если файловый указатель находится за концом файла, функция возвращает нуль.

void *ptr – указатель на принимающий буфер.

size_t size – размер в байтах одного элемента, читаемого из файлового потока, size_t определен в stddof.h

size_t n – количество читаемых элементов.

FILE *stream – указатель на открытый файловый поток.

10. Записать данные в поток.

size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream), //stdio.h

Записывает один или несколько байтов в файловый поток, открытый в двоичном режиме.

11. Записать форматированный вывод

int fprint(FILE *stream, const char *format [argument...]), //stdio.h

FILE *stream – указатель на открытый файловый поток

const char *format – указатель на строку формата, аналогичную используемой в функции printf().

argument,...-список аргументов по одному на каждый описатель формата.

12. Просмотреть и форматировать вывод из потока

int fscanf(FILE *stream, const char *format[, address,...]); //stdio.h

Читает текст из потока, преобразуя данные в двоичный вид в сответствии с описателями формата, содержащимися в строке формата format. Результирующие значения записываются в ячейки, заданные адресными аргументами.

FILE *stream – указатель на открытый файловый поток, из которого читаются символы.

const char *format – указатель на строку формата, которая должна содержать один или несколько описателей формата, каждому из которых предшествует символ %.

address,...- список адресных указателей, по одному для каждого описателя формата.

В адресуемых ими областях памяти заполняются данные, преобразуемые из текстового вида в двоичный. Эти области памяти должны иметь размер, достаточный для того, чтобы в них помещались соответствующие значения.

13. Получить файловый указатель.

long int ftell(FILE *stream); //stdio.h

Возвращает внутренний указатель файлового потока, равный смещению в байтах от начала двоичного файла до байта, с которого начинается следующая операция ввода/вывода. Можно использовать ftell() также и для текстовых файлов, но с большой осторожностью, т.к. возвращаемое значение не обязательно будет представлять байтовое смещение в файле

FILE *stream – указатель на открытый файловый поток.

14. Установить новую позицию указателя файла

int fseek(FILE *stream, long offset, int whence);

FILE *stream – указатель на открытый файловый поток.

long offset – для двоичных файлов это – число байтов, на которое нужно переместить файловый указатель в направлении, указанном whence. Для текстовый файлов это значение должно быть нулем или значением, возвращаемым функцией ftell(). Чтобы переместить файловый указатель в обратном направлении (по направлению к началу файла), offset устанавливают равным отрицательному значению.

int whence: чтобы переместить файловый указатель на offset байтов от начала файла, устанавливают whence равным seek-set. Для перемещения файлового указателя относительно текущей позиции, whence = seek-cur, для перемещения файлового указателя относительно конца файла, whence = seek-end.

7

Соседние файлы в папке Lab4