std:: basic_ifstream
|
Определено в заголовочном файле
<fstream>
|
||
|
template
<
class
CharT,
|
||
Класс-шаблон
basic_ifstream
реализует высокоуровневые операции ввода для файловых потоков. Он связывает файловый буфер потока (
std::basic_filebuf
) с высокоуровневым интерфейсом (
std::basic_istream
).
Типичная реализация
std::basic_ifstream
содержит только один непроизводный элемент данных: экземпляр
std::
basic_filebuf
<
CharT, Traits
>
.
Диаграмма наследования
Предоставлены несколько typedef для распространённых символьных типов:
|
Определено в заголовке
<fstream>
|
|
| Тип | Определение |
std::ifstream
|
std :: basic_ifstream < char > |
std::wifstream
|
std :: basic_ifstream < wchar_t > |
Содержание |
Типы членов
| Тип члена | Определение |
char_type
|
CharT
|
traits_type
|
Traits
; программа некорректна, если
Traits::char_type
не является
CharT
.
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
native_handle_type
(C++26)
|
определяемый реализацией
тип, который является
TriviallyCopyable
и
semiregular
|
Функции-члены
|
конструирует файловый поток
(public member function) |
|
|
(destructor)
[virtual]
(implicitly declared)
|
уничтожает объект
basic_ifstream
и связанный буфер, закрывает файл
(virtual public member function) |
|
(C++11)
|
перемещает файловый поток
(public member function) |
|
(C++11)
|
обменивает два файловых потока
(public member function) |
|
возвращает базовый объект файлового устройства
(public member function) |
|
|
(C++26)
|
возвращает базовый дескриптор, определяемый реализацией
(public member function) |
Операции с файлами |
|
|
проверяет, ассоциирован ли поток с файлом
(public member function) |
|
|
открывает файл и ассоциирует его с потоком
(public member function) |
|
|
закрывает ассоциированный файл
(public member function) |
|
Функции, не являющиеся членами класса
|
(C++11)
|
специализирует алгоритм
std::swap
(шаблон функции) |
Унаследовано от std:: basic_istream
Функции-члены
Форматированный ввод |
|
|
извлекает форматированные данные
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Неформатированный ввод |
|
|
извлекает символы
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
читает следующий символ без его извлечения
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
возвращает символ обратно в поток
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
помещает символ обратно в входной поток
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает символы до нахождения заданного символа
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает и отбрасывает символы до нахождения заданного символа
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает блоки символов
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
извлекает уже доступные блоки символов
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
возвращает количество символов, извлеченных последней операцией неформатированного ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Позиционирование |
|
|
возвращает индикатор позиции ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
устанавливает индикатор позиции ввода
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Прочие |
|
|
синхронизирует с базовым устройством хранения
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
Классы-члены
|
реализует базовую логику для подготовки потока к операциям ввода
(публичный класс-член
std::basic_istream<CharT,Traits>
)
|
Унаследовано от std:: basic_ios
Типы членов
| Тип члена | Определение |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
Функции-члены
Функции состояния |
|
|
проверяет, что ошибок не произошло, т.е. операции ввода-вывода доступны
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, достигнут ли конец файла
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, произошла ли ошибка
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, произошла ли неустранимая ошибка
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, произошла ли ошибка (синоним
fail()
)
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
проверяет, что ошибок не произошло (синоним
!
fail()
)
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
возвращает флаги состояния
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
устанавливает флаги состояния
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
изменяет флаги состояния
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
Форматирование |
|
|
копирует информацию о форматировании
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
управляет символом-заполнителем
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
Разное |
|
|
управляет маской исключений
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
устанавливает локаль
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
управляет связанным буфером потока
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
управляет связанным потоком
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
сужает символы
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
расширяет символы
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
Унаследовано от std:: ios_base
Функции-члены
Форматирование |
|
|
управляет флагами формата
(публичная функция-член
std::ios_base
)
|
|
|
устанавливает определённый флаг формата
(публичная функция-член
std::ios_base
)
|
|
|
сбрасывает определённый флаг формата
(публичная функция-член
std::ios_base
)
|
|
|
управляет точностью десятичных операций с плавающей точкой
(публичная функция-член
std::ios_base
)
|
|
|
управляет шириной поля
(публичная функция-член
std::ios_base
)
|
|
Локали |
|
|
устанавливает локаль
(публичная функция-член
std::ios_base
)
|
|
|
возвращает текущую локаль
(публичная функция-член
std::ios_base
)
|
|
Внутренний расширяемый массив |
|
|
[static]
|
возвращает уникальное для программы целое число, безопасное для использования в качестве индекса для
pword()
и
iword()
(публичная статическая функция-член
std::ios_base
)
|
|
изменяет размер приватного хранилища при необходимости и предоставляет доступ к
long
элементу по заданному индексу
(публичная функция-член
std::ios_base
)
|
|
|
изменяет размер приватного хранилища при необходимости и предоставляет доступ к
void
*
элементу по заданному индексу
(публичная функция-член
std::ios_base
)
|
|
Прочее |
|
|
регистрирует функцию обратного вызова событий
(публичная функция-член
std::ios_base
)
|
|
|
[static]
|
устанавливает, являются ли библиотеки ввода-вывода C++ и C взаимно совместимыми
(публичная статическая функция-член
std::ios_base
)
|
Классы-члены |
|
|
исключение потока
(публичный класс-член
std::ios_base
)
|
|
|
инициализирует объекты стандартных потоков
(публичный класс-член
std::ios_base
)
|
|
Типы членов и константы |
|||||||||||||||||||||||||||||||||||||||
| Тип | Объяснение | ||||||||||||||||||||||||||||||||||||||
|
тип режима открытия потока
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
тип флагов форматирования
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
тип состояния потока
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
тип направления позиционирования
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
определяет тип события
(enum) |
|||||||||||||||||||||||||||||||||||||||
|
тип функции обратного вызова
(typedef) |
|||||||||||||||||||||||||||||||||||||||
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_fstream_native_handle
|
202306L
|
(C++26) | поддержка нативных дескрипторов |
Пример
#include <fstream> #include <iostream> #include <string> int main() { std::string filename = "Test.b"; // prepare a file to read double d = 3.14; std::ofstream(filename, std::ios::binary) .write(reinterpret_cast<char*>(&d), sizeof d) << 123 << "abc"; // open file for reading std::ifstream istrm(filename, std::ios::binary); if (!istrm.is_open()) std::cout << "failed to open " << filename << '\n'; else { double d; istrm.read(reinterpret_cast<char*>(&d), sizeof d); // binary input int n; std::string s; if (istrm >> n >> s) // text input std::cout << "read back from file: " << d << ' ' << n << ' ' << s << '\n'; } }
Вывод:
read back from file: 3.14 123 abc