Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Класс
Описывает объект, который управляет извлечением элементов и закодированных объектов из буфера потока класса 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 Конвенций