Класс 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();
Замечания
Вызовы функции-члены rdbuf
—> close
.
Пример
Пример 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
Конвенций