logo
Лабораторная работа 7new

Простой файл Ввод/Вывод.

Класс 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