Опубликован: 15.11.2010 | Доступ: свободный | Студентов: 643 / 18 | Оценка: 4.00 / 5.00 | Длительность: 17:30:00
Специальности: Программист
Лекция 8:

Буферизированный (потоковый) ввод-вывод. Часть III

8.5. Приложение № 2. Описание функций потокового ввода-вывода в файл языка C++

КОНСТРУКТОР: ifstream
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС:
ifstream <поток>[(file)];
char *file;
НАЗНАЧЕНИЕ: Создаёт входной поток данных и ассоциирует его с файлом с именем file ;
ОПИСАНИЕ: Вызов конструктора обязателен перед использованием переменной входного потока. Указание имени файла не обязательно - его потом можно задать функцией open ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет;
ПЕРЕНОСИМОСТЬ:

КОНСТРУКТОР: ofstream
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС:
ofstream <поток>[(file)];
char *file;
НАЗНАЧЕНИЕ: Создаёт выходной поток данных и ассоциирует его с файлом с именем file ;
ОПИСАНИЕ: Вызов конструктора обязателен перед использованием переменной выходного потока. Указание имени файла не обязательно - его потом можно задать функцией open ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет;
ПЕРЕНОСИМОСТЬ:

ФУНКЦИЯ ios.open
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС:
void stream.open( file, open_mode, port = filebuf::openport );
char *file;
int open_mode = ios::open_mode;
int port;
НАЗНАЧЕНИЕ: Функция открывает файл с именем file в одном из указанных в open_mode режимов работы;
ОПИСАНИЕ:
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет;
ПЕРЕНОСИМОСТЬ:

РЕЖИМЫ ОТКРЫТИЯ ФАЙЛОВ ФУНКЦИЕЙ OPEN:
Режим Действие
ios::in Открыть файл для ввода (для класса ifstream установлен по-умолчанию);
ios::out Открыть файл для вывода (для класса ofstream установлен по-умолчанию);
ios::ate Открыть файл для записи в конец файла. При отсутствии файла создать его;
ios::app Открыть файл для записи в конец файла;
ios::trunc Пересоздать файл, если он уже существует;
ios::nocreate Если файл не существует, то установить состояние ошибки;
ios::noreplace Если файл уже существует, то установить состояние ошибки;
ios::binary Открыть файл в двоичном режиме;

ПРИМЕЧАНИЕ: Если необходимо указать более одного режима open_mode, режимы необходимо связывать с помощью побитовой операции ИЛИ (binary OR, |) ;

ФУНКЦИЯ ios.close
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС: stream.close();
НАЗНАЧЕНИЕ: Функция закрывает открытый поток ввода или вывода;
ОПИСАНИЕ: Это действие часто требуется в качестве предварительной операции при открытии нового файла для существующего потока;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.
ПЕРЕНОСИМОСТЬ:

ФУНКЦИЯ ios.tellg
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС: streampos stream.tellg();
НАЗНАЧЕНИЕ: Функция определяет текущую позицию файла, с которой будет производиться чтение в файл;
ОПИСАНИЕ:
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Смещение для операции чтения относительно начала файла;
ПЕРЕНОСИМОСТЬ:

ФУНКЦИЯ ios.tellp
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС: streampos stream.tellp();
НАЗНАЧЕНИЕ: Функция определяет текущую позицию файла, с которой будет производиться запись в файл;
ОПИСАНИЕ:
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Смещение для операции записи относительно начала файла;
ПЕРЕНОСИМОСТЬ:

ФУНКЦИЯ ios.seekg
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС:
void stream.seekg( pos, dir = ios:: beg );
streampos pos;
seek_dir dir;
НАЗНАЧЕНИЕ: Функция переустанавливает указатель позиции файла на заданное число байтов в заданном направлении для операций чтения;
ОПИСАНИЕ: Параметр pos задаёт смещение позиции чтения относительно данного направления, указанного параметром dir (см. ниже);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет;
ПЕРЕНОСИМОСТЬ:

ФУНКЦИЯ ios.seekp
ОПРЕДЕЛЕНА В: <iostream.h> <fstream.h>
СИНТАКСИС:
void stream.seekp( pos, dir = ios:: beg );
streampos pos;
seek_dir dir;
НАЗНАЧЕНИЕ: Функция переустанавливает указатель позиции файла на заданное число байтов в заданном направлении для операций записи;
ОПИСАНИЕ: Параметр pos задаёт смещение позиции записи относительно данного направления, указанного параметром dir (см. ниже);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет;
ПЕРЕНОСИМОСТЬ:
ЗНАЧЕНИЯ ПЕРЕМЕННЫХ ПЕРЕЧИСЛЕНИЯ seek_dir ДЛЯ ФУНКЦИЙ SEEKG И SEEKP:
ЗНАЧЕНИЕ ОПИСАНИЕ ТОЧКИ ОТСЧЁТА
ios::beg относительно начала файла;
ios::cur относительно текущей позиции;
ios::end относительно конца файла;

Дмитрий Карпов
Дмитрий Карпов
Россия, Нижний Новгород
Олег Корсак
Олег Корсак
Латвия, Рига