Простой файл Ввод/Вывод.
Класс ofstream наследует операции вывода из ostream, а ifstream наследует операции ввода из istream. Они предоставляют констракторы и функции-элементы для создания файлов и обработки ввод/вывод. Вы должны включить fstream.h во все программы, использующие эти классы. Рассмотрим пример, который копирует файл FILE.IN в файл FILE.OUT:
#include fstream.h
...
char ch;
ifstream fl("file.in");
if (!f1) errmsg("нельзя открыть файл 'file.in' для ввода"); ofstream f2("file.out");
if (!f2) errmsg ("нельзя открыть файл 'file.out' для вывода"); while (f2 && f1.get(ch) ) f2.put(ch);
Примечание. Заметим, что iostream.h в Borland C++ автоматически включается в fstream.h.
Заметим, что если констракторы для ifstream или ofstream недоступны при открытии заданных файлов, устанавливается соответствующее состояние ошибки для потока.
Констракторы позволяют Вам объявить файл потока без указания имени файла, позже Вы можете связать поток с каким-либо файлом:
ofstream ofile; // создает поток файла вывода
...
ofile.open("payroll"); // ofile связывается с файлом "payroll"
ofile.close(); // закрыть поток ofile
ofile.open("employee"); //ofile можно использовать снова
По умолчанию файл открывается в текстовом режиме. Это означает, что при вводе последовательность возврат каретки/перевод строки преобразуется в символ \n. При выводе производится обратное преобразование. Эти преобразования не производятся в двоичном режиме. Режим файла устанавливается с помощью необязательного третьего параметра функции open, выбранного из следующей таблицы:
Режимы файлов.
Режим | Действие |
ios::app | добавление данных - всегда пишет в конец файла |
ios::ate | переходит на конец файла при открытии |
ios::in | открывает на ввод (по умолчанию для ifstream) |
ios::out | открывает на вывод (по умолчанию для оfstream) |
ios::binary | открывает файл в двоичном режиме |
ios::trunc | удаляет содержимое, если файл существует (подразумевается для ios::out и, если не заданы ни ios::atе, ни ios::app) |
ios::nocreate | если файл не существует, open с ошибкой |
ios::noreplace | если файл существует, open для выходного файла с ошибкой, если не заданы ate или app |
- Основные теоретические сведения Объявление базового класса
- Конструкторы и деструкторы
- Объявление производных классов
- Перегрузка операций
- Ключевое слово this
- Операторы new и delete.
- Потоки Выходной поток
- Встроенные типы.
- Форматированный вывод.
- Манипуляции.
- Определенный пользователем вывод.
- Входные типы, определенные пользователем.
- Простой файл Ввод/Вывод.
- Ход работы
- Задание
- Варианты задания (лр№3)
- Литература