Читайте также:
|
|
Файловые потоки библиотеки ввода-вывода реализуют объектно-ориентированную методику работы с дисковыми файлами. Имеется три класса таких потоков:
Эти классы выводятся соответственно из istream, ostream и iostream. Таким образом, они наследуют все их функциональные возможности (перегруженные операции << и>>” для встроенных типов, флаги форматирования и состояния, манипуляторы и т. д.).
Чтобы работать с файловым потоком, нужен, во-первых, объект потока, а во-вторых, открытый файл, связанный с этим объектом.
Конструирование объекта потока
Каждый из трех классов файловых потоков имеет четыре конструктора.
ifstream ();
of stream();
fstream ();
if stream(const char *name,
int mode = ios::in, long prot = 0666);
ofstream(const char *name,
int mode = ios::out, long prot = 0666);
fstream (const char *name, int mode, long prot = 0666);
ifstreamfint file);
ofstream(int file);
fstream (int file);
ifstream(int file, char *buf, int len)
of stream(int file, char *buf, int len)
fstream (int file, char *buf, int len)
Режимы открытия файла
Параметр mode, который имеет вторая форма конструктора, задает режим открытия файла. Для значений параметра класс ios определяет символические константы, перечисленные в таблице 5.
Таблица 5. Константы класса ios для режимов открытия файла
Константа | Описание |
арр | Открытие для записи в конец файла. |
ate | При открытии позиционирует указатель на конец файла. |
binary | Файл открывается в двоичном (не текстовом) режиме. |
in | Файл открывается для ввода. |
out | Файл открывается для вывода. |
trunc | Если файл существует, его содержимое теряется. |
Константы можно комбинировать с помощью поразрядного OR. Для конструкторов классов if stream и ofstream параметр mode имеет значения по умолчанию — соответственно ios:: in и ios:: out.
Закрытие файла
В классах файловых потоков имеется функция close (), которая сбрасывает содержимое потока и закрывает ассоциированный с ним файл.
Кроме того, деструктор потока автоматически закрывает файл при уничтожении объекта потока.
При ошибке закрытия файла устанавливается флаг failbit.
Примеры файловых потоков
Следующий пример (листинг 4) демонстрирует различные режимы и способы открытия потока.
Дата добавления: 2015-07-11; просмотров: 102 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Листинг 3. форматирующие флаги потоков | | | Бесформатный ввод-вывод |