748 ___ ______________Часть II. Программирование на C++
Обозначения cin и cout - это не функции и не операции. Это объекты, или экземпляры класса (см. главу 13). Чтобы можно было их использовать, включите в ваш модуль заголовок iostream.h:
ttinclude <iostream.h>
После этого с объектами cin и cout можно работать. Они обеспечивают в точности те же возможности, что и функции print f и scanf, но их симметричный синтаксис гораздо проще, удобнее и существенно легче усваивается.
Замечание
Объекты cin и cout являются статическими (объяснение того, что значит статические, смотрите в главе 10 "Написание выражений"). Сейчас вам достаточно знать, что после включения заголовка iostream.h эти объекты доступны для ввода и вывода.
Для записи в устройство вывода используйте cout:
»
int birthday •= 1974;
char *greetings = "Здравствуй, мир!";
cout « greetings « " Я родился в " « birthday « " году" « endl;
Обратите внимание на однородность синтаксиса вне зависимости от типа данных. Здесь присутствуют целое число, переменная char*, литерная строка и еще какое-то endl, и все совершенно одинаковым образом. Вообще говоря, данные любого базового типа можно отправить на вывод тем же самым образом. Синтаксис cin почти идентичен:
int а = 0;
cout « "Сколько вам лет?" « endi;
cin » a;
Единственная разница — в направлении операции ввода ». Узнаете в « и » операции сдвига влево и вправо? Они были перегружены (см. главу 16 "Перегрузка операций") и приобрели в новом контексте новый смысл. Как операции сдвига влево и вправо они применяются для побитового сдвига целых чисел, что эквивалентно соответственно умножению и делению на два. В контексте же объектов iostream они служат для записи в устройство вывода (скажем, консоль) и чтения из устройства ввода (например, клавиатуры). Но пока что вам не стоит беспокоиться о перегрузке, просто положитесь на их интуитивно понятный синтаксис.
Замечание
Обозначение endl в приведенном выше фрагменте — это манипулятор потока ввода-вывода (stream manipulator), знакомство с которым вас ожидает в главе 16 "Перегрузка операций" (вероятно, автор имел в виду все же главу 13 "Обзор потоков ввода-вывода", — прим. перев.). Он выполняет ту