- •Файловый
- •Класс – это описание множества объектов и выполняемых над ними действий
- •Наследование
- •Состояния потока описываются в классе ios в виде перечисления enum:
- •Проверить состояние потока можно
- •Работа с классом fstream
- •Задание нескольких режимов
- •Позиционирование с помощью функций
- •Возврат текущей позиции
- •Файловый ввод-вывод
- •создать файловый поток
- •Пример 2.
- •Работа с классом ofstream
- •Альтернативные функции
- •Пример использования класса ofstream
- •Работа с классом ifstream
- •1) Программа создает объект типа ofstream и выводит несколько строк текста в файл
- •файл A.DAT, читает его и отображает первые три элемента
- •4Программа читает файл по одному символу
- •5) Используется функция eof
- •6) Читается содержимое файла
- •Бинарный файл
- •(вместе с расширением) нужно ввести, читает из файла число и возводит его в
- •продолжение
- •окончание
- •вывода содержимого структуры с информацией о работнике (фамилия и имя,
- •функцию fail для проверки
Файловый
ввод/вывод
На языке С++
Класс – это описание множества объектов и выполняемых над ними действий
Для обработки файлов в C++ должны быть включены заголовочные
файлы <iostream> и <fstream>.
•Файл <fstream> включает определения классов потоков ifstream (для ввода в файл), ofstream (для вывода из файла)
и fstream (для ввода/вывода файлов).
Наследование
•Классы потоков ifstream (для ввода в файл), ofstream (для вывода из файла) и fstream (для ввода/вывода файлов) являются производными (т.е. наследуют функциональные возможности) от классов istream (класс входных потоков), ostream (класс выходных
потоков), iostream (класс
ввода/вывода) соответственно.
•При использовании поточных классов языка С++ в программе требуется использовать стандартное пространство имен (using namespace std;).
•Файловый ввод/вывод организован с помощью переопределенных в
поточных классах операций включения (<<) и извлечения (>>). Эти операции имеют два операнда. Левым операндом
является объект
Состояния потока описываются в классе ios в виде перечисления enum:
•enum state
•{ goodbit, //нет ошибки 0Х00
•eofbit, //конец файла 0Х01
•failbit, //последняя операция не выполнилась 0Х02
•badbit, //попытка использовать недопустимые операции 0Х04
•hardfail //фатальная ошибка 0Х08 }
Проверить состояние потока можно
функциями:
•int rdstate()
•int bad(); //1, если badbit или hardfail
•int eof(); //1, если eofbit
•int fail(); //1, если failbit, badbit или hardfail
•int good(); //1, если goodbit
Работа с классом fstream
•void open (const char* name, int mode,
int p = filebuf::openprot);
|
Режимы открытия файла |
ios::app |
Открыть файл для дозаписи в |
ios::binar |
его конец |
Открыть файл в бинарном |
|
y |
режиме |
ios::in |
Открыть файл для чтения |
ios::out |
Открыть файл для записи, если |
|
файл не существует, он будет |
ios::trunc |
создан |
Усечение существующего потока |
|
ios::ate |
до нуля |
Установить указатель |
|
|
позиционирования файла на |
ios::nocre |
конец |
Если файл не существует, не |
Задание нескольких режимов
•ifstream output_file("FIlename.EXT",
ios::out | ios::noreplace);
void fstreambase::close();