8.2. Ввод и вывод в файл

В заголовке fstream определены три типа, поддерживающие операции ввода и вывода в файл: класс ifstream читает данные из указанного файла, класс ofstream записывает данные в файл, класс fstream читает и записывает данные в тот же файл. Использование того же файла для ввода и вывода рассматривается в разделе 17.5.3.

Эти типы поддерживают те же операции, что и описанные ранее объекты cin и cout. В частности, для чтения и записи в файлы можно использовать операторы ввода-вывода (<< и >>), можно использовать функцию getline() (см. раздел 3.2.2) для чтения из потока ifstream. Материал, изложенный в разделе 8.1, относится также и к этим типам.

Кроме поведения, унаследованного от типа iostream, определенные в заголовке fstream типы имеют в дополнение члены для работы с файлами, связанными с потоком. Эти операции перечислены в табл. 8.3, они могут быть вызваны для объектов классов fstream, ifstream или ofstream, но не других типов ввода-вывода.

Таблица 8.3. Операции, специфические для типов заголовка fstream

fstream fstrm; Создает несвязанный файловый поток, fstream — это один из типов, определенных в заголовке fstream fstream fstrm(s); Создает объект класса fstream и открывает файл по имени s. Параметр s может иметь тип string или быть указателем на символьную строку в стиле С (см. раздел 3.5.4). Эти конструкторы являются явными (см. раздел 7.5.4). Заданный по умолчанию режим файла зависит от типа fstream fstream fstrm(s, режим); Подобен предыдущему конструктору, но открывает файл s в указанном режиме fstrm.open(s) fstrm.open(sрежим) Открывает файл s и связывает его с потоком fstrm. Параметр s может иметь тип string или быть указателем на символьную строку в стиле С. Заданный по умолчанию режим файла зависит от типа fstream. Возвращает тип void fstrm.close() Закрывает файл, с которым связан поток fstrm. Возвращает тип void fstrm.is_open() Возвращает значение типа bool, указывающее, был ли связанный с потоком fstrm файл успешно открыт и не был ли он закрыт 

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК