Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KPIYaP_OTVET_3.rtf
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
540 Кб
Скачать
☆

Iostream& manip_name (iostream& stream){

// ...

return stream;

}

Особенности:

  • получает ссылку на поток ( при использовании этот аргумент не указывается )

  • возвращает ссылку на поток

  • создается для выполнения часто используемых операций

ostream& nr( ostream& stream){

stream << " **** " << endl;

return stream;

}

3.05

Перегрузка операторов вводы и вывода из потока.

Особенности:

  • оператор << - оператор вставки в поток

  • оператор >> - оператор извлечения

  • желательно чтобы полученные операторы были универсальными и работали сразными потоками

Перегрузка оператора >>

istream& operator<< ( istream& stream, class_name& obj);

Особенности:

  • не может быть членом класса

  • stream - ссфлка на поток ввода

  • obj - ссылка на объект пользовательского типа

  • возвращает ссылку на поток ввода для выполнения цепочек

  • для доступа к закрытым членам класса следует определять функцию как дружественную классу ( friend )

3.06

Пергрузка оператора <<

ostream& operator << (ostream& stream, class_name obj);

Особенности:

  • не может быть членом класса

  • stream - ссылка на поток ввода

  • obj - объект пользовательского типа

  • возвращает ссылку на поток для выполнения цепочек

  • для доступа к закрытым членам класса определять оператор как friend

3.07

Файловая система.

Предназначена для поддержки файлов.

Особенности:

  • файловая система - часть общей объекто-ориентированной системы ввода-вывода

  • соответствие принципам объектно-ориентированного программирования

  • дополнена особенностями поддержки файлов

Файлы.

Файл - физ. устройство с которым осуществляется всязь по обмуну данными.

Работа с файлами ведется с использованием потоков - абстрактное ( логическое ) устройство.

Файловый поток одновременно может быть связан только с одним файлом.

Все потоки в файловой системе одинаковы, а сами файлы мгут отличаться.

Принципы работы с файлом.

Чтобы работать с файлом вначале необходимо свящать его с некоторым потоком.

  • сначала задаем экземпляр файлового потока одного из типов ifstream, ofstream, fstream

  • для связи уже имеющегося потока и файла необходимо выполнить открытие файла

  • по окончанию оапботы с файлом необходимо разорвать связь с потоком, чтобы не осталось зависших данных, для этого используется закрытие файла.

Статус состояния ввыода - вывода.

Поток имеет набор флагов статуса состояния.

Для ios объявлена битовая маска iostate:

typedef T2 iostate;

static const iostate badbit, eofbit, failbit, goodbit;

  • goodbit - нормальное состояние ( не битовая маска )

  • eofbit - обнаружен конец файла

  • failbit - обнаружена исправимая ошибка

  • badbit - обнаружена критическая ошибка

Получение информации о статусе ввода-вывода

Первый сопсоб получения информации о статусе связан с функцией:

iostate rdstate();

Особенности:

  • Если ошибок не обнаружено, то возвращается значение goodbit;

  • При возникновении ошибок требуетсяя анализ битовых флагов ошибок:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]