Класс 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_traitsElem<>).

Замечания

Объект хранит объект класса 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