Класс basic_fstream
Описывает объект, который управляет вставкой и извлечением элементов и закодированных объектов с помощью буфера потока класса basic_filebuf<Elem
,>Tr
с элементами типаElem
, признаки символов которых определяются классом.Tr
Синтаксис
template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<Elem, Tr>
Параметры
Elem
Базовый элемент буфера файла.
Tr
Признаки базового элемента буфера файла (обычноchar_traits
Elem
<>).
Замечания
Объект хранит объект класса basic_filebuf
<Elem
, . Tr
>
Примечание.
Указатель get и указатель put объекта fstream ЗАВИСЯТ друг от друга. При перемещении указателя get указатель put также перемещается.
Пример
В следующем примере показано, как создать объект basic_fstream
, из которого можно считать данные и в который можно записать данные.
// basic_fstream_class.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
fstream fs("fstream.txt", ios::in | ios::out | ios::trunc);
if (!fs.bad())
{
// Write to the file.
fs << "Writing to a basic_fstream object..." << endl;
fs.close();
// Dump the contents of the file to cout.
fs.open("fstream.txt", ios::in);
cout << fs.rdbuf();
fs.close();
}
}
Writing to a basic_fstream object...
Конструкторы
Конструктор | Description |
---|---|
basic_fstream | Создает объект типа basic_fstream . |
Функции элементов
Функция-член | Description |
---|---|
close | Закрывает файл. |
is_open | Определяет, открыт ли файл. |
open | Открывает файл. |
rdbuf | Возвращает адрес буфера хранимого потока, указателя типа на basic_filebufElem <, . Tr > |
swap | Меняет местами содержимое данного объекта с содержимым другого объекта basic_fstream . |
Требования
Заголовок:<fstream>
Пространство имен: std
basic_fstream::basic_fstream
Создает объект типа basic_fstream
.
basic_fstream();
explicit basic_fstream(
const char* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
explicit basic_fstream(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
basic_fstream(basic_fstream&& right);
Параметры
_Имя файла
Имя файла, который необходимо открыть.
_Режим
Одно из перечислений в ios_base::openmode.
_Прот
Защита от открытия файла по умолчанию, эквивалентная параметру shflag в _fsopen, _wfsopen.
Замечания
Первый конструктор инициализирует базовый класс путем вызова basic_iostream(sb
), где sb
хранится объект класса basic_filebuf< Elem, Tr.> Он также инициализируется sb
путем вызова basic_filebuf
<Elem, Tr.>
Второй и третий конструкторы инициализируют базовый класс путем вызова basic_iostream
( sb). Он также инициализируется sb
путем вызова<basic_filebuf
Elem, Tr>, а затем sb.open(_ Filename, _Mode
). Если последняя функция возвращает указатель null, конструктор вызывает setstate(failbit
).
Четвертый конструктор инициализирует объект с содержимым right
, что рассматривается как ссылка rvalue.
Пример
Пример использования basic_fstream
см. в разделе streampos.
basic_fstream::close
Закрывает файл.
void close();
Замечания
Функция-член вызывает rdbuf-close>.
Пример
Пример использования close
см. в разделе basic_filebuf::close.
basic_fstream::is_open
Определяет, открыт ли файл.
bool is_open() const;
Возвращаемое значение
Значение true
, если файл открыт; в противном случае — значение false
.
Замечания
Функция-член возвращает rdbuf-is_open>.
Пример
Пример использования is_open
см. в разделе basic_filebuf::is_open.
basic_fstream::open
Открывает файл.
void open(
const char* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
void open(
const char* _Filename,
ios_base::openmode _Mode);
void open(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int)ios_base::_Openprot);
void open(
const wchar_t* _Filename,
ios_base::openmode _Mode);
Параметры
_Имя файла
Имя файла, который необходимо открыть.
_Режим
Одно из перечислений в ios_base::openmode.
_Прот
Защита от открытия файла по умолчанию, эквивалентная параметру shflag в _fsopen, _wfsopen.
Замечания
Функция-член вызывает rdbuf -> open(_ Filename, _Mode
). Если эта функция возвращает пустой указатель, функция вызывает setstate( failbit
).
Пример
Пример использования open
см. в basic_filebuf::open.
basic_fstream::operator=
Назначает этому объекту содержимое из указанного объекта потока. Это назначение перемещения с использованием rvalue, после которого не остается копии.
basic_fstream& operator=(basic_fstream&& right);
Параметры
right
Ссылка lvalue на объект basic_fstream
.
Возвращаемое значение
Возвращает *this
.
Замечания
Оператор-член заменяет содержимое объекта с помощью содержимого правого значения, который рассматривается как ссылка rvalue.
basic_fstream::rdbuf
Возвращает адрес сохраненного буфера потока, указателя типа на basic_filebuf<Elem, Tr.>
basic_filebuf<Elem, Tr> *rdbuf() const
Возвращаемое значение
Адрес сохраненного буфера потока.
Пример
Пример использования rdbuf
см. в разделе basic_filebuf::close.
basic_fstream::swap
Меняет местами содержимое двух объектов basic_fstream
.
void swap(basic_fstream& right);
Параметры
right
Ссылка lvalue
на объект basic_fstream
.
Замечания
Функция-член обменивается содержимым этого объекта и содержимого права.
См. также
Потокобезопасность в стандартной библиотеке C++
Программирование iostream
Соглашения iostreams