Программирование >>  Расширенная версия языка c++ 

1 ... 85 86 87 [ 88 ] 89 90 91 ... 227


II Инициализация стека ,

stack::stack()

tos=0;

>

Помещение символа в стек . . .

void stack::push{char ch}

i . . -,

cout Стек полон ; return;

stck[tos]=ch; tos++;

/ кивание символа из стека char stack::pop О

if (tos=-o) { ; \

cout Стек пуст ; /

return 0; возврат нуля при стом стеке

tos-;

return stck [tos];

2. Напишите программу с классов tch, которхй бы играл роль обгчнхх часов. Используя стандартные функции времени, создайте конструктор класса, который должен считывать и запоминать системное время. Для вывода этого времени на экран создайте пользовательскую функцию вывода.

3. На основе класса, созданного для преобразования футов в дюймы, напи-пште пользовательскую функцию ввода, формирующую строку-приглашение для записи числа футов. Кроме этого, напишите пользовательскую функцию вывода дж отображения на экране как числа футов, так и числа дюймов. Включите указанные функции в программу и продемонстрируйте их работоспособность.

clas t0 inches { .....> -г

double feet;

double inches; . .

public:

void set (double); {

feet - f;

inches = f * 12; }



Глава 9

Дополнительные возможности ввода/вывода в C++


В этой главе продолжается изучение системы ввода/вывода C++. Здесь вы узнаете, как создать пользовательские манипуляторы ввода/вывода и как реализовать ввод/вывод в файл. Запомните, система ввода/вывода С++ очень богата, гибка и многофункциональна. Рассмотрение всех ее возможностей выходит за рамки данной мы коснемся только наиболее важ-н1х из них.

Представленная в этой главе система ввода/вывода C++ определена в стандарте Standard C++ и совместима с подавляющим большинством современных компиляторов C++. Если у вас устаревший или несовместимый с современной системой ввода/вывода компилятор, то не все описанные здесь возможности будут вам доступны. . , .

ПоБТОрение пройденного

Перед тем как продолжить, необходимо правильно ответить на следующие вопросы и сделать упражнения.

Напишите программу для вывода предложения: C++ прекрасен в поле шириной 40 символов с использованием двоеточия (:) в качестве символа заполнения.

Напишите программу для вывода результата деления с четырьмя знаками после десятичной точки. Для этого используйте функции-члены класса ios.

Перепишите предыдущую используя манипуляторы вво-

да/вывода.

4. Что такое пользовательская функция вывода? Что такое пользовательская функция ввода?



- Самоучитель C++

5. Дан следующий класс. Создайте для него пользовательские функции ввода и вывода.

гл ,

class date {

cha [Э]; дата хранится в виде строки: mm/dd/yy .: -

public:

добавьте пользовательские функции ввода и вывода - , ,

6. Какой заголовок должен быть включен в программу для использования манипуляторов ввода/вывода с параметрами?

7. Какие создаются встроенные потоки, когда начинается выполнение программы на C++?

9.1. Создание

пользовательских манипуляторов

В дополнение к перегрузке операторов ввода и вывода вы можете создать свою подсистему ввода/вывода ( : , определив для этого собственные манипуляторы. Использование пользовательских манипуляторов важно по двум причинам. Во-первых, можно объединить последовательность нескольких отдельных операций по вводу/выводу в один манипулятор. Например, нередки ситуации, в которых в программе встречаются одинаковые последовательности операций ввода/вывода. Для выполнения такой последовательности можно создать пользовательский манипулятор. Этим вы упрощаете

исходную программу и исключаете случайные ошибки. Во-вторых, пользовательский манипулятор может понадобиться, когда необходимо выполнить ввод/вывод на нестандартном оборудовании. Например, вы могли бы воспользоваться манипулятором для посылки управляющих кодов на специальный принтер или в систему оптического распознавания.

Пользовательские манипуляторы - это те элементы языка, которые обеспечивают поддержку в C++ объектно-ориентированного программирования, но они также удобны и для обычных, не объектно-ориентированных программ. Как вы увидите, пользовательские манипуляторы могут помочь сделать любую программу ввода/вывода понятней и эффективней.

Как вы знаете, имеется два базовых типа манипуляторов: которые работают с потоками ввода, и те, которые работают с потоками вывода. Однако кроме этих двух категорий имеются еще две: манипуляторы с аргументами и без них. Есть несколько важных отличий в способе создания манипуляторов с параметрами и без. Более того, создание манипуляторов с параметрами является существенно более трудной задачей, чем создание манипуляторов без параметров, и в этой книге не рассматривается. С другой стороны, создать пользовательский манипулятор без параметров достаточно просто, и вы скоро узнаете, как это сделать.



1 ... 85 86 87 [ 88 ] 89 90 91 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика