На этом шаге мы рассмотрим особенности использования этого оператора.
Класс basic_istream (а следовательно, и классы istream и wistream) интерпретирует >> как оператор ввода. По аналогии с basic_ostream он перегружает этот оператор для всех базовых типов, включая char*, void и bool. Потоковые операторы ввода сохраняют прочитанное значение во втором аргументе. Как и в случае с оператором <<, данные пересылаются в направлении "стрелки":
int i; std::cin >> i; // Читает int из стандартного ввода и сохраняет его в i float f; std::cin >> f; // Читает float из стандартного ввода и сохраняет его в f
Обратите внимание на модификацию второго аргумента. Чтобы это было возможно, второй аргумент передается по неконстантной ссылке.
Оператор ввода, как и оператор вывода, может перегружаться для произвольных типов данных и может вызываться "по цепочке":
float f;
std::complex<double> с;
std::cin >> f >> c;
По умолчанию начальные пропуски игнорируются, хотя этот режим можно отключить.
Со следующего шаге мы начнем рассматривать ввод и вывод специальных типов.