С++ для начинающих




Оператор вывода <<


Оператор вывода обычно применяется для записи на стандартный вывод cout. Например, программа

#include <iostream>

int main()

{

    cout << "сплетница Анна Ливия\n";

}

печатает на терминале строку:

сплетница Анна Ливия

Имеются операторы, принимающие аргументы любого встроенного типа данных, включая const char*, а также типов string и complex из стандартной библиотеки. Любое выражение, включая вызов функции, может быть аргументом оператора вывода при условии, что результатом его вычисления будет тип, принимаемый каким-либо вариантом этого оператора. Например, программа

#include <iostream>

#include <string.h>

int main()

{

    cout << "Длина 'Улисс' равна:\t";

    cout << strlen( "Улисс" );

    cout << '\n';

    cout << "Размер 'Улисс' равен:\t";

    cout << sizeof( "Улисс" );

    cout << endl;

}

выводит на терминал следующее:

Длина 'Улисс' равна:7

Размер 'Улисс' равен:8

endl – это манипулятор вывода, который вставляет в выходной поток символ перехода на новую строку, а затем сбрасывает буфер объекта ostream. (С буферизацией мы познакомимся в разделе 20.9.)

Операторы вывода, как правило, удобнее сцеплять в одну инструкцию. Например, предыдущую программу можно записать таким образом:

#include <iostream>

#include <string.h>

int main()

{

    // операторы вывода можно сцеплять

    cout << "Длина 'Улисс' равна:\t";

         << strlen( "Улисс" ) << '\n';

    cout << "Размер 'Улисс' равен:\t"

         << sizeof( "Улисс" ) << endl;

}

Сцепление операторов вывода (и ввода тоже) возможно потому, что результатом выражения

cout << "некоторая строка";

служит левый операнд оператора вывода, т.е. сам объект cout. Затем этот же объект передается следующему оператору и далее по цепочке (мы говорим, что оператор << левоассоциативен).




Содержание  Назад  Вперед