
- •Основные понятия алгоритмизации.
- •2. Служебные слова
- •3. Основные понятия типов данных
- •4 .Описание переменных
- •5. Описание констант
- •6.Операции отношений
- •7. Логические операции
- •8. Операции присваивания
- •9. Операции явного преобразования типа
- •10. Операции определения размера sizeof
- •11.Операция «запятая» и «?»
- •12. Операция получения адреса (&) и раскрытия ссылки(*)
- •13. Знаки операций () и []
- •14. Директива #define
- •15. Директива #include
- •16. Структура программы
- •17. Форматированный вывод на экран. Форматированный ввод с клавиатуры
- •19. Условный оператор
- •20. Оператор выбора.
- •Цикл с предусловием
- •22.Цикл с постусовием
- •23.Цикл с параметром
- •24. Оператор continue
- •25.Оператор Goto
- •26. Определение функции
- •27. Прототип функции
- •28.Использование библиотечных функций
- •29. Основные понятия массивов
- •30. Одномерные и многомерные массивы
- •31. Указатели и массивы. Массив как параметр функции
- •32. Символьные строки
- •33. Строки как параметр функции
17. Форматированный вывод на экран. Форматированный ввод с клавиатуры
Для организации ввода-вывода в Си++ можно использовать средства языка Си (conio. h). Однако в Си++ существует стандартная библиотека классов, ориентированная на организацию потокового ввода-вывода. Классы ввода-вывода образуют иерархию по принципу наследования. Базовым в этой иерархии является класс io s (исключение составляют лишь классы буферизированных потоков). В классе ios объединены базовые данные и методы для ввода-вывода. Прямыми потомками класса ios являются классы istream и ostream. Класс istream — это класс входных потоков; ostream — класс выходных потоков. Потомком этих двух классов является iostream — класс двунаправленных потоков ввода-вывода. С этим классом мы уже много раз имели дело, подключая его к программам с помощью головного файла iostream.h .Объект cout принадлежит к классу ostream и представляет собой поток вывода, связанный с дисплеем. Объект cin принадлежит классу istream и является потоком ввода, связанным с клавиатурой. Оба эти объекта наследуются классом iostream. Знак << обозначает перегруженную операцию вставки символов в поток вывода cout , a >> — знак операции извлечения из потока ввода cin. Для организации форматированного потокового ввода-вывода в Си++ существуют два средства:
• применение функций-членов класса ios для управления флагами форматирования;
• применение функций-манипуляторов.
18. Потоковый ввод – вывод в C++
Библиотека потоков C++ предоставляет набор классов для управления вводом-выводом. Непосредственно в язык C++ (как и в язык Си) средства ввода-вывода не входят. В программах часто используется препроцессорная директива
#include <iostream.h>
Назначение указанного в директиве заголовочного файла — связать компилируемую программу с одной из основных частей библиотеки ввода-вывода, построенной на основе механизма классов. Эта библиотека почти стандартная, так как включена практически во все компиляторы C++. Однако о стандарте здесь можно говорить только неформально: библиотека создана после появления языка. Она разрабатывалась в некотором смысле независимо от создания языка, не входит в формальное описание языка и написана на языке C++.
Потоки ввода-вывода
Библиотека обеспечивает программиста механизмами для извлечения данных из потоков и для помещения данных в потоки. Каждый поток (за исключением строковых) ассоциируется при помощи операционной системы с определенным внешним устройством. При обмене с потоком используется вспомогательный участок памяти, называемый буфером потока. При вводе данных они сначала помещаются в буфер и только затем передаются выполняемой программе. При выводе — данные заполняют буфер перед передачей внешнему устройству. Заполнение и очистку буферов операционная система выполняет без явного участия программиста, поэтому поток в прикладной программе можно рассматривать как последовательность байтов, не зависящую от конкретных устройств, с которыми ведется обмен данными.
Все потоки библиотеки последовательные, т.е. в каждый момент для потока определены позиции записи и (или) чтения, которые после обмена перемещаются по потоку на длину переданной порции данных.
В зависимости от реализуемого направления передачи данных потоки делят на три группы:
· входные, из которых читается информация;
· выходные, в которые вводятся данные;
· двунаправленные, допускающие как чтение, так и запись.
В соответствии с особенностями обслуживаемого устройства потоки принято делить на следующие группы:
· стандартные, для передачи данных от клавиатуры и к дисплею (во всех предыдущих программах использовались потоки данной группы);
· файловые, при размещении данных на внешнем носителе (например, диск, магнитная лента);
· строковые, позволяющие размещать данные потока в памяти (символьный массив или строка) и пользоваться при этом всеми средствами, предоставляемыми библиотекой потоков (например, форматный ввод-вывод данных).