Потоковый ввод
Потоковый ввод аналогичен выводу, но использует переопределенную операцию сдвига вправо, >>, и называется операцией извлечения, или извлечением. Левый операнд операции >> представляет
собой объект типа класса istream. Как и для вывода, правый операнд может быть любого типа, для которого определен вывод потоком.
По умолчанию операция >> опускает пробельные символы (как
определено функцией isspace в ctype.h), а затем считывает символы, соответствующие типу объекта ввода. Пропуск пробельных символов управляется флагом ios::skipws в перечислимой переменной состояния. Флаг skipws обычно устанавливает пропуск пробельных
символов. Очистка этого флага (например, при помощи setf) выключает пропуск пробельных символов. Отметим также специальный манипулятор "приемника", ws, который позволяет игнорировать пробельные символы.
Рассмотрим следующий пример:
int i;
double d;
cin >> i >> d;
Последняя строка вызывает пропуск пробельных символов. Цифры, считываемые со стандартного устройства ввода (по умолчанию
это клавиатура), преобразуются затем во внутренний двоичный формат и записываются в переменную i. Затем снова пропускаются пробельные символы, и наконец считывается число с плавающей точкой, которое преобразуется и записывается в переменную d.
Для типа char (signed или unsigned) действие операции >>
состоит в пропуске пробельных символов и записи следующего
(непробельного) символа. Если вам требуется прочесть следующий
символ, неважно, является ли он пробельным или нет, то можно использовать одну из функций-элементов get.
Для типа char* (рассматриваемого как строка) действие операции >> состоит в пропуске пробельных символов и записи следующих
(непробельных) символов до тех пор, пока не встретится следующий
пробельный символ. Затем добавляется завершающий нулевой (0) символ.
Назад | Содержание | Вперед