854 Глава 14

функция	синтаксис / описание	файл
vsscanf	int vsscanf(const char *buffer, const char *format, vaIist arglist)Вводит данные из буфера buffer в список адресов аргументов arglist по формату format	stdarg.h
write	int write(int handle, void *buf, unsigned len)Выводит в файл с дескриптором handle из буфера buf len байтов	io.h
FileRead	int FileRead(int Handle, void *Buffer, int Count)Выводит из файла с дескриптором Handle, открытого функциями FileOpen или FileCreate, Count байтов в буфер Buffer; возвращает число прочитанных байтов или -1	Sys-Utils.hpp- -}
FileWrite	int FileWrite(int Handle, const void *Buffer, int Count)Вводит в файл с дескриптором Handle, открытый функциями FileOpen или FileCreate, Count байтов из буфера Buffer; возвращает число записанных байтов или -1	Sys- ] Utils.hpp

Комментарии

Для работы с текстовыми файлами чаще всего используются функции scanf
для чтения и printf для записи.

Функции buffer, printf, sprintf, vfprintf, vprintf, vsprintf производят форма-
тированный вывод данных из списка указанных в них аргументов. Строка форма-
тирования подробно рассмотрена в разделе 14.4.1. Функции возвращают число
успешно записанных байтов или EOF при ошибке.

Функции fscanf, scanf, cscanf, sscanf, vfscanf, vscanf, vsscanf производят
форматированный ввод данных в список адресов аргументов. Строка форматирова-
ния подробно рассмотрена в разделе 14.4.2. Число спецификаций в строке форма-
тирования и число аргументов в списке должны совпадать. Функции возвращают
число успешно введенных полей, а если достигнут конец файла, то возвращают
EOF. Обратите внимание на то, что указываются не сами переменные, в которые
осуществляется ввод данных, а их адреса. Например:

FILE *F;

if ( (F = fopen("Test2.txt", "rt")) "NULL)
{

ShowMessage("Файл не удается открыть");

return;

}

int il, i2;

double r;

if (fscanf(F, "%d%d%le", &il, &i2, &r) != 3)

ShowMessage("Ошибка чтения") ;

else

fclose(F);

Функции vfprintf и vfscanf работают со списком аргументов переменной длины
типа va_list (см. о таких списках в главе 11 в разделе 11.5.5. Они могут использова-
ться внутри функций, принимающих переменное число параметров. Например:

#include <stdio.h>

#include <stdarg.h>