Шаг 82.
Microsoft Visual C++ 2010. Язык С/С++. Ввод и вывод в языках C и C++. Ввод/вывод файлов в языке C. Основные функции для работы с файлами
На этом шаге мы перечислим основные функции, предназначенные для работы с файлами.
После того, как файл открыт, для чтения или записи используют специальные функции. Приведем перечень функций для
работы с файлами.
- Функция fputc (). Формат:
Выводит символ в файл (с - выводимый символ, fp - указатель файла).
- Функция fputs (). Формат:
Выводит строку в файл (s - выводимая строка, fp - указатель файла).
- Функция fgetc (). Формат:
Читает один символ из файла с указателем fр. Переменная с описана как char с. В случае ошибки
или достижения конца файла возвращает EOF.
- Функция fgets (). Формат:
Читает строку в s (s - массив символов или указатель типа char (предварительно должна быть
выделена память для чтения с использована указателя), MAXLINE - максимальное число символов, которое
требует читать из файла с указателем fр). В случае ошибки или достижения конца файла возвращает NULL.
- Функция fread (). Формат:
Читает из файла с указателем fp n элементов данных, каждый из которых имеет длину m байтов.
Чтение происходит в буфер, на который указывает указатель (например, char buf[50] или char *buf (но в этом
случае нужно выделить память для буфера)). Общее количество байтов чтения составляет n*m. Функция возвращает
количество прочитанных элементов, а при достижении конца файла или возникновении ошибки чтения возвращает NULL.
- Функция fwrite (). Формат:
fwrite (const void ptr, m, n, fp);
Пишет в файл с указателем fp: добавляет n элементов в выходной файл, каждый элемент длиной в m байтов.
Данные записываются из буфера, который указывает указатель ptr (этот указатель указывает на некоторый объект,
например, на структуру). Общее число записанных байтов
n*m. В случае ошибки записи функция возвращает ноль, в противном случае - количество записанных элементов.
- Функция fseek (). Формат:
Устанавливает указатель в файле в позицию, отстоящую на n байтов от текущей, а направление перемещения (вперед
или назад) задается параметром m, который может быть одним из значений: 0, 1, 2 или одной из трех символических
констант, определенных в файле stdio.h:
- SEEK_SET (или 0) - отсчет от начала файла;
- SEEK_CUR (или 1) - отсчет от текущей позиции указателя;
- SEEK_END (или 2) - отсчет от конца файла.
Функция fseek() используется для ввода/вывода потоком.
Для работы не с потоковыми данными следует использовать функцию lseek().
При удачном завершении работы fseek() возвращает ноль, в противном случае - иное значение. Функция
fseek() возвращает код ошибки, только если файл или устройство не открыты. В этих случаях глобальная
переменная errno принимает одно из следующих значений:
- EBADF - неверный указатель файла;
- EINVAL - неверный аргумент функции;
- ESPIPE - поиск на устройстве запрещен.
- Функция ftell (). Формат:
Возвращает текущее значение указателя файла fp (т. е. номер текущей позиции) в виде значения типа long int.
Отсчет идет в байтах от начала файла. Возвращаемое значение может быть использовано в функции fseek(). Если
обнаружены ошибки, функция возвращает значение -1L и присваивает глобальной переменной errno положительное значение.
- Функция fscanf (). Формат:
fscanf (fp, Control, argl, arg2, ..., argn);
Читает данные из файла с указателем tp, преобразует их по форматам, записанным в управляющей строке
Control, а отформатированные данные записывает в аргументы arg1, ... , argn. Подробные
сведения о работе этой функции можно получить, ознакомившись с работой функции scanf ().
- Функция fprintf (). Формат:
fprinf (fp, Control, argl, arg2, ..., argn);
Записывет данные в файл с указателем fp, преобразует аргумент arg1, ... , argn к форматам,
которые записаны в управляющей строке Control, и отформатированные данные записывает в файл.
Подробные сведения о работе этой функции можно получить, ознакомившись с работой функции printf ().
На следующем шаге мы закончим изучение этого вопроса.
Предыдущий шаг
Содержание
Следующий шаг