68934

Потоки. Класи потоків С++. Вбудовані потоки C++

Лекция

Информатика, кибернетика и программирование

Потоки. Система введення-виводу мови C++, як і її аналог в мові С, оперує потоками. Потік (stream) — це логічний пристрій, одержуючий або передавальний інформацію. Потік пов’язаний з фізичним пристроєм введення-виводу. Всі потоки функціонують однаково, хоча фізичні пристрої

Украинкский

2014-09-27

35 KB

8 чел.

Лекція № 26

Тема: Потоки. Класи потоків С++

План

  1.  Потоки
  2.  Класи потоків в С++
  3.  Вбудовані потоки C++
  4.  Форматоване введення-виведення

Потоки

Потоки. Система введення-виводу мови C++, як і її аналог в мові С, оперує потоками. Потік (stream) — це логічний пристрій, одержуючий або передавальний інформацію. Потік пов'язаний з фізичним пристроєм введення-виводу. Всі потоки функціонують однаково, хоча фізичні пристрої, з якими вони пов'язані, можуть бути самими різними. Оскільки всі потоки однакові, одна функція введення-виводу може працювати з різними типами фізичних пристроїв. Наприклад, за допомогою однієї функції можна виводити дані як на принтер, так і на екран.

Класи потоків в мові C++

Як відомо, для системи введення-виводу необхідний заголовок <iostream>. У цьому заголовку визначена досить складна ієрархія класів, що підтримують операції введення-виводу. Спочатку визначаються шаблонні класи введення-виводу. Шаблонний клас є схемою, в якій не уточнюється тип даних, якими вона оперує. Після визначення шаблонних класів можна створювати їх конкретизації. Стандарт мови C++ створює дві спеціалізації шаблонних класів введення-виводу: одну для восьмибітових символів, а іншу — для розширених. У книзі використовуються тільки класи для восьмибітових символів, оскільки вони застосовуються ширше. Проте описана технологія застосовна і до розширених символів.

Система введення-виводу мови C++ побудована на основі двох споріднених, але різних ієрархій шаблонних класів. У основі першої ієрархії лежить клас b_streambuf, призначений для низькорівневого введення-виводу. Якщо в програмі не використовуються особливі процедури введення-виводу, клас basic_streambuf, як правило, не потрібний. У звичайних застосуваннях найчастіше застосовується ієрархія класів, побудована на основі класу basic_ios, що забезпечує високорівневі операції введення-виводу, перевірку помилок і аналіз інформації про статус потоків. (Клас basic_ios є похідним від класу ios_base, що визначає деякі нешаблонні властивості, використовувані класом basic_ios.) Клас basic_ios використовується як базовий для декількох похідних класів, зокрема basic_istream, basic_ostream і basic_iostream. Ці класи застосовуються для створення потоків, що забезпечують відповідно введення, вивід, а також уведення-виведення.

Як відомо, бібліотека введення-виводу створює дві спеціалізації шаблонних класів, що входять в ієрархію: одну для восьмибітових символів, а іншу — для розширених. Нижче приводиться список імен шаблонних класів, призначених для введення-виводу звичайних і розширених символів.

Шаблонні класи Класи звичайних символів Класи розширених символів

basic_streambuf streambuf   wstreambuf

basic_ios  ios    wios

basic_istream istream   wistream

basic_ostream ostream   wostream

basic_iostream iostream   wiostream

basic_fstream fstream   wfstream

basic_ifstream ifstream   wifstream

basic_ofstream ofstream   wofstream

У книзі використовуються лише класи, призначені для введення-виводу звичайних символів, оскільки саме такі операції виконуються найчастіше. Їх імена співпадають з іменами відповідних класів із старої бібліотеки. Саме тому стара і нова бібліотеки введення-виводу сумісні на рівні початкової коди.

І останнє: клас ios містить велика кількість функцій-членів і змінних, керівників основними операціями над потоками або що спостерігають за їх виконанням. Ми часто на нього посилатимемося. Просто слід пам'ятати: включаючи в програму заголовок <iostream>, ви дістаєте доступ до цього важливого класу.

 

Вбудовані потоки в мові C++

На початку виконання програми на мові C++ автоматично відкриваються чотири потоки.

Потоки Значення     Пристрій за умовчанням

сin  Стандартне введення   Клавіатура

cout  Стандартний вивід   Екран

cerr  Стандартне виведення помилок Екран

clog  Варіант потоку cerr, що буферизує Екран

Потоки cin, cout і cerr відповідають потокам stdin, stdout і stderr.

За умовчанням стандартні потоки використовуються для взаємодії з консоллю. Проте в операційних системах, що підтримують перенаправлення потоків введення-виводу (таких як DOS, Unix, OS/2 і Windows), стандартні потоки можна пов'язати з іншими пристроями або файлами. Для простоти в прикладах ми не застосовуватимемо перенаправлення потоків.

Крім того, мову C++ визначає чотири додаткові потоки: win, wout, werr і wlog. Це версії потоків для введення-виводу розширених символів. Для представлення розширених символів використовується тип wchar_t і 16-бітові значення. Як правило, розширені символи застосовуються для підтримки деяких природних мов.

Форматоване уведення-виведення

Мова C++ дозволяє виконувати операції форматованого введення-виводу. Наприклад, можна задати ширину поля, вказати основу числення або визначити кількість цифр після десяткової крапки. Для форматування даних можна застосовувати два схожих, але разных способу. По-перше, можна прямо звернутися до членів класу ios. Зокрема, можна самостійно задавати різні прапори форматування, визначені усередині класу ios, або викликати різноманітні функції-члени. По-друге, у виразах введення-виводу можна використовувати спеціальні функції, звані маніпуляторами (manipulators).


 

А также другие работы, которые могут Вас заинтересовать

35148. редства удалённого выполнения заданий в Windows 38 KB
  Планировщик заданий Windows осуществляет настройку как для локального компьютера так и для удаленной системы. На удаленных системах эта возможность обеспечивается совместной работой нескольких служб и программ: Планировщик заданий это стандартная служба Windows управляющая планировщиком заданий. Создание заданий на локальном компьютере осуществляется через: ПускВсе программыСтандартныеНазначенные задания Создание заданий на удаленном компьютере осуществляется через: Сетевое окружениеОтобразить компьютеры рабочей группывыбираем...
35149. Средства удалённого доступа к сети в Windows 40 KB
  в ОС Windows XP имеются встроенные инструменты для организации таких подключений : Remote Desktop Удаленный рабочий стол Remote ssistnce Удаленный помощник. Remote ssistnce Remote ssistnce позволяет пригласить другого пользователя друга знакомого специалиста для оказания помощи. При этом приглашенный участник в отличие от использования Remote Desktop может наблюдать за действиями пользователя. При этом Remote ssistnt самостоятельно управляет настройками соединения подстраивая объем передаваемых данных под возможности канала...
35150. Виртуальные частные сети. Архитектура и протоколы 42.5 KB
  VPN англ. В зависимости от применяемых протоколов и назначения VPN может обеспечивать соединения трёх видов: узелузел узелсеть и сетьсеть. Уровни реализации Обычно VPN развёртывают на уровнях не выше сетевого так как применение криптографии на этих уровнях позволяет использовать в неизменном виде транспортные протоколы такие как TCP UDP. Пользователи Microsoft Windows обозначают термином VPN одну из реализаций виртуальной сети PPTP причём используемую зачастую не для создания частных сетей.
35151. Методы повышения надёжности хранения данных. Технология RAID 50.5 KB
  Технология RID Одна из причин ведущих к утрате информации аппаратные сбои и поломки. RID это акроним от Redundnt rry of Independent Disks. Этим набором устройств управляет специальный RIDконтроллер контроллер массива который инкапсулирует в себе функции размещения данных по массиву; а для всей остальной системы позволяет представлять весь массив как одно логическое устройство ввода вывода. В зависимости от уровня RID проводится или зеркалирование или распределение данных по дискам.
35152. Цели и задачи администрирования 25 KB
  чтобы предоставить пользователям ИС наилучшее возможности по эффективному использованию ресурсов ИС при объективных ограничениях. 3 квалифицируемая помощь пользователям. Здесь задача состоит в том чтобы реализовать в ИС выбранную стратегию ИБ на базе 1 или нескольких политик безопасности обеспечить использование ИС только санкционированным пользователям предусмотреть резервное копирование и восстановления отдельных ресурсов или всей ИС.
35153. Сетевое администрирование. Основные понятия. Сетевые ОС 26.5 KB
  Компьютерные сети это совокупность компьютеров связанных коммуникационной системой необходимым программным обеспечением позволяющей пользователям и приложениям получить доступ к ресурсам компьютеров сети. клиентская часть средство запроса на доступ к удаленным серверам транспортные средства сетевой ОС обеспечивающие передачу доступных между компьютерами Среди компонентов сети выделяют сетевые службы это программные модули работающие в установленном режиме которые предоставляют доступ к конкретным ресурсам компа через сеть....
35154. Модели управления доступом к ресурсам 27 KB
  Основными компонентами ролевой модели разрешения права пользователя Разрешение определяет тип доступа к объекту или его свойству дается пользователям или группам . разрешения применяются к защищенным объектам Рекомендуется назначать разрешения группам. Существуют группы разрешений которые являются основными или обязательными чтение разрешения смена разрешения смена владельца удаление разрешения Существует специальный вид разрешения владения которое назначается при создании объектов. Какие бы разрешения не были установлены для...
35155. Администрирование сетей Microsoft. Средства анализа состояния сети в Windows 29 KB
  Средства анализа состояния сети в Windows. Базовые принципы: 1 необходимо иметь точную схему и документацию сети: текущая топологическая схема подробная информация обо всем его сетевом оборудовании его конфигурации и использующихся протоколах IPадресах каналах связи WU сервера и сегментах пользовательских локальных сетей. 2 перед изменениями в сети а так же после этих изменений необходимо оценивать работу в сети для того чтобы делать выводы об отрицательном или положительном влиянии внешних изменений . В Windows отдается приоритет...
35156. Службы каталогов. Пространство имен X.500 и протокол LDAP 30 KB
  Службы каталогов. Основная цель объединения компов в вычислительную сеть это обеспечение совместного использования ресурсов при администрировании вычислительной сети 1 из основных задач это реализация оптимального метода организации общих ресурсов одним из методов эффективного управления множеством ресурсов и множеством потребителей вычислительной сети является разветвленная служба каталогов Служба каталогов это сетевая служба позволяющая получать доступ без знания точного местоположения ресурса При использовании службы каталогов вся...