Добавил:
ПОИТ 2016-2020 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
29.04.2018
Размер:
124.48 Кб
Скачать

Файловый

ввод/вывод

На языке С++

Класс – это описание множества объектов и выполняемых над ними действий

Для обработки файлов в 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();

Соседние файлы в папке Лекции