Класс basic_ifstream

Описывает объект, который управляет извлечением элементов и закодированных объектов из буфера потока класса basic_filebuf<Elem, Tr>с элементами типа Elem, признаки символов которых определяются классом Tr.

Дополнительные сведения см. в разделе basic_filebuf.

Синтаксис

template <class Elem, class Tr = char_traits<Elem>>
class basic_ifstream : public basic_istream<Elem, Tr>

Параметры

Elem
Базовый элемент буфера файла.

Tr
Признаки базового элемента буфера файла (обычно char_traits<Elem>).

Замечания

Объект сохраняет объект класса basic_filebuf<Elem, Tr>.

Пример

В следующем примере показано, как считать текст из файла.

// basic_ifstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_class.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

Вход: basic_ifstream_class.txt

This is the contents of basic_ifstream_class.txt.

Выходные данные

This is the contents of basic_ifstream_class.txt.

Конструкторы

Конструктор Description
basic_ifstream Выполняет инициализацию нового экземпляра объекта basic_ifstream.

Функции элементов

Функция-член Description
close Закрывает файл.
is_open Определяет, открыт ли файл.
open Открывает файл.
rdbuf Возвращает адрес сохраненного буфера потока.
swap Меняет местами содержимое этого basic_ifstream и содержимое указанного параметра basic_ifstream.

Операторы

Operator Description
operator= Назначает содержимое этого объекта потока. Это назначение перемещения, rvalue которое не оставляет копию позади.

Требования

Заголовок.<fstream>

Пространство именstd:

basic_ifstream::basic_ifstream

Создает объект типа basic_ifstream.

basic_ifstream();

explicit basic_ifstream(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

explicit basic_ifstream(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

basic_ifstream(basic_ifstream&& right);

Параметры

_Filename
Имя файла, который необходимо открыть.

_Mode
Одно из перечислений в ios_base::openmode.

_Prot
Защита от открытия файла по умолчанию, эквивалентная параметру shflag в_fsopen , _wfsopen.

Замечания

Первый конструктор инициализирует базовый класс путем вызова basic_istream(sb), где sb хранится объект класса basic_filebuf<Elem, Tr>. Он также инициализируется sb путем вызова basic_filebuf<Elem, Tr>.

Второй и третий конструкторы инициализировать базовый класс путем вызова basic_istream(sb). Он также инициализируется sb путем вызова basic_filebuf<Elem, Tr>, а затем sb.open(_Filename, _Mode | ios_base::in). Если последняя функция возвращает указатель null, конструктор вызывает setstate(failbit).

Четвертый конструктор инициализирует объект с содержимым right, который рассматривается как rvalue ссылка.

Дополнительные сведения см. в разделе basic_istream, basic_filebuf, setstate, и open.

Пример

В следующем примере показано, как считать текст из файла. Чтобы создать файл, см. пример.basic_ofstream::basic_ofstream

// basic_ifstream_ctor.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_ctor.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

basic_ifstream::close

Закрывает файл.

void close();

Замечания

Вызовы функции-членыrdbufclose>.

Пример

Пример basic_filebuf::close использования close.

basic_ifstream::is_open

Определяет, открыт ли файл.

bool is_open() const;

Возвращаемое значение

Значение true, если файл открыт; в противном случае — значение false.

Замечания

Функция-член возвращает rdbuf->is_open.

Пример

Пример basic_filebuf::is_open использования is_open.

basic_ifstream::open

Открывает файл.

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    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,
    int _Prot = (int)ios_base::_Openprot);

void open(
    const wchar_t* _Filename,
    ios_base::openmode _Mode);

Параметры

_Filename
Имя файла, который необходимо открыть.

_Mode
Одно из перечислений в ios_base::openmode.

_Prot
Защита от открытия файла по умолчанию, эквивалентная параметру shflag в_fsopen , _wfsopen.

Замечания

Вызовы rdbuf->open(_Filename, _Mode | ios_base::in)функции-члены. Дополнительные сведения см. в разделах rdbuf и basic_filebuf::open. Если открытие завершается ошибкойios_base::failure, вызов setstate(failbit)функции, который может вызвать исключение. Дополнительные сведения см. в разделе setstate.

Пример

Пример basic_filebuf::open использования open.

basic_ifstream::operator=

Назначает содержимое этого объекта потока. Это назначение перемещения, rvalue которое не оставляет копию позади.

basic_ifstream& operator=(basic_ifstream&& right);

Параметры

right
Ссылка rvalue на объект basic_ifstream.

Возвращаемое значение

Возвращает *this.

Замечания

Оператор-член заменяет содержимое объекта с помощью содержимого rightобъекта, который рассматривается как rvalue ссылка. Дополнительные сведения см. в разделах Lvalues и Rvalues.

basic_ifstream::rdbuf

Возвращает адрес сохраненного буфера потока.

basic_filebuf<Elem, Tr> *rdbuf() const

Возвращаемое значение

Указатель на basic_filebuf объект, представляющий буфер хранимого потока.

Пример

Пример basic_filebuf::close использования rdbuf.

basic_ifstream::swap

Меняет местами содержимое двух объектов basic_ifstream.

void swap(basic_ifstream& right);

Параметры

right
Ссылка на другой буфер потока.

Замечания

Функция-член меняет местами содержимое этого объекта для содержимого right.

См. также

Потокобезопасность в стандартной библиотеке C++
iostream Программирования
iostreams Конвенций