Программирование. Принципы и практика использования C++ Исправленное издание, стр. 34
Hello, 22 (age –1)Обратите внимание на то, что мы можем одним оператором ввода ввести одновременно несколько значений, а одним оператором вывода — вывести их на экран. Кроме того, оператор
<<>>ageintfirst_nameHello,(age\nВвод объекта типа
string>>>>int main(){ cout << "Пожалуйста, введите свое имя и отчество\n"; string first; string second; cin >> first >> second; // считываем две строки cout << "Hello, " << first << ' ' << second << '\n';}Здесь мы просто использовали оператор
>>ПОПРОБУЙТЕ
Запустите программу “имя и возраст”. Измените ее так, чтобы она выводила возраст, измеренный месяцами: введите возраст, выраженный в годах, и умножьте это число на 12 (используя оператор
*double3.4. Операции и операторы
Кроме значений, которые могут храниться в переменной, ее тип определяет также операции, которые можно применять к ней, и их смысл. Рассмотрим пример.
int count;cin >> count; // оператор >> считывает целое число в объект countstring name;cin >> name; // оператор >> считывает строку в переменную nameint c2 = count+2; // оператор + складывает целые числаstring s2 = name + " Jr. "; // оператор + добавляет символыint c3 = count–2; // оператор – вычитает целые числаstring s3 = name – "Jr. "; // ошибка: оператор – для строк не определен
int age = –100;Очевидно, что человек не может иметь отрицательный возраст (хотя почему бы и нет?), но никто не сказал компилятору об этом, поэтому он успешно создаст код для этого определения. Приведем таблицу полезных операторов для наиболее распространенных типов.

Пустые ячейки означают, что операция не может применяться к данному типу непосредственно (хотя существует множество косвенных способов их использования; см. раздел 3.9.1). Со временем мы объясним все эти операции. Дело в том, что существует множество полезных операций и их смысл у схожих типов почти одинаков.
Рассмотрим пример, в котором фигурируют числа с плавающей точкой.
// простая программа, демонстрирующая работу операторовint main(){ cout << "Пожалуйста, введите значение с плавающей точкой: "; double n; cin >> n; cout << "n == " << n << "\nn+1 == " << n+1 << "\n три раза по n == " << 3*n << "\n два раза по n == " << n+n << "\nn в квадрате == " << n*n << "\n половина n == " << n/2 << "\n корень квадратный из n == " << sqrt(n) << endl; // синоним перехода на новую строку ("end of line")}Очевидно, что обычные арифметические операции имеют традиционные обозначения, а их смысл известен нам со школьной скамьи. Естественно также, что не все операции над числами с плавающей точкой реализованы в виде операторов, например квадратный корень можно извлечь лишь с помощью функции. Многие операции представлены именованными функциями. В данном случае для извлечения квадратного корня из числа n используется функция
sqrt(n)ПОПРОБУЙТЕ
Запустите эту небольшую программу. Затем измените ее так, чтобы считать значение типа
intdoublesqrt()doublesqrt()5/222.535%21*/%abinta/b*b+a%b==a