Самоучитель С++ - Шилдт Г.
ISBN 5-7791-0086-1
Скачать (прямая ссылка):


1;
ostream 6operator<< (ostream ^stream, inventory ob)
{
stream << ob.item« ,T << ob. onhand;
stream << и на руках no цене $" << ob.cost << ' \n1 ;
return stream;
}
istream &operator>> (istream &stream, inventory &ob)
{
cout << "Введите название предмета: ";
stream >> ob.item;
cout << "Введите число выданных на руки экземпляров: м; stream >> ob. onhand;
268
Самоучитель C+ +
cout << "Введите стоимость экземпляра : stream >> ob-Gost;
return stream;
intnain { }
I
inventory ob( "пашіег*', 4, 12.55);
cout << ob; cin >X)b ; cout << ob; return 0;
1. Добавьте пользовательскую функцию ввода в класс strtype из упражнения I предыдущегораздела.
2. Создайте класс для хранения целого и его наименьшего делителя. Создайте для этого класса пользовательские функции ввода и вывода.
Теперь вам необходимо выполнить следующие упражнения и ответить на
1. Напишите программу для вывода числа 100 в десятичной, шестнадцатеричной и восьмеричной системе счисления. (Используйте флаги формата класса ios.)
2. Напишите программу для вывода значения 1000.5364 в 20-символьном поле, с выравниванием влево, с двумя позициями после запятой и символом * в качестве символа заполнения. (Используйте флаги формата класса ios.)
3. Перепишите ваши ответы на упражнения 1 и 2 так, чтобы использовались манипуляторы ввода/вывода.
4. Покажите, как записать и как отобразить для класса cout флаги формата. Используйте функции-члены либо манипуляторы.
вопросы
Глава 8. Введение в систему ввода/вывода C++____________________________________269
5. Создайте для следующего класса пользовательские функции ввода и вывода:
class pwr (
int base; int exponent;
double result; // результат возведения в степень public:
pwr(int b, int e)
};
pwr::pwr(int b, int e)
f
base - b; exponent = e ;
result = 1;
for {; e; e — ] result = result *' base;
}
6. Создайте класс box для хранения размеров квадрата. Для вывода изображения квадрата на экран создайте пользовательскую функцию вывода. (Способ изображения выберите любой.)
Проверка усвоения материала в целом
В этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.
1. Используя показанный здесь класс stack, создайте пользовательскую функцию вывода для вставки в поток содержимого стека. Покажите, что функция работает.
ttinclude<iostream> using namespace 5td;
#define SI2E 10
// Объявление класса stack для хранения символов ¦class stack {
char stck[S!ZE]; // содержит стек
int tos; // индекс вершины стека
public;
stack () ;
void push (char ch) ; // помещение символа в стек
char pop О; // выталкивание символа из стека
};
270.
Самоучитель C++
І і Инициализация стека stack::stack()
{
tos=0;
}
/ / Помещение символа в стек void stack::pushfchar ch}
;
if (tos==SIZE) {
cout « "Стек полон";
return;
}
stck[tos]=chf
tos++;
}
/ / Выталкивание символа из стека char stack::pop()
(
if (tos==0) {
cout << "Стек пуст";
return 0; // возврат нуля при пустом стеке
}
tos—;
return stck[tos];
}
2. Наттитттите программу с классом watch, который бы играл роль обычных часов. Используя стандартные функции времени, создайте конструктор класса, который должен считывать и запоминать системное время. Для вывода этого времени на экран создайте пользовательскую функцию вывода.
3. На основе класса, созданного для преобразования футов в дюймы, напишите пользовательскую функцию ввода, формирующую строку-приглашение для записи числа футов. Кроме этого, напишите пользовательскую функцию вывода для отображения на экране как числа футов, так и числа дюймов. Включите указанные функции в программу и продемонстрируйте их работоспособность.
class ft_to inches {
double feet; double inches; public:
void set (double f); { feet - f; inches = f * 12;
\
Глава 9
Дополнительные возможности ввода/вывода в C++
В этой главе продолжается изучение системы ввода/вывода C++. Здесь вы узнаете, как создать пользовательские манипуляторы ввода/вывода и как реализовать ввод/вывод в файл. Запомните, система ввода/вывода C++ очень богата, гибка и многофункциональна. Рассмотрение всех ее возможностей выходит за рамки данной книги, мы коснемся только наиболее важных из них.
Представленная в этой главе система ввода/вывода C++ определена в стандарте Standard C++ и совместима с подавляющим большинством современных компиляторов C++. Если у вас устаревший или несовместимый с современной системой ввода/вывода компилятор, то не все описанные здесь возможности будут вам доступны.
ІПоБТОрение пройденного
Перед тем как продолжить, необходимо правильно ответить на следующие


