Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2017-06-05 | 256 |
5.00
из
|
Заказать работу |
|
|
Последний из трех рассматриваемых способов управления форматированием данных – применение манипуляторов. Манипуляторами называются функции, которые можно включать в цепочку последовательных операций помещения и извлечения. Манипуляторы обеспечивают удобный способ управления флагами и модификации атрибутов форматирования потока (частично дублируя возможности, предоставляемые рассмотренными функциями-элементами класса ios), хотя их применение не ограничивается модификациями формата ввода-вывода. При выполнении манипулятора никаких обменов данными с потоком не происходит, но манипулятор в качестве побочного эффекта изменяет состояние потока.
Манипуляторы библиотеки потоков C++ делятся на две группы: простые (не имеющие аргументов) и параметризованные (требующие спецификации аргументов). Простые манипуляторы описаны в файле iostream.h. Параметризованные требуют включения в текст программы заголовочного файла iomanip.h, содержащего их описания.
Перечислим простые манипуляторы:
· dec, hex и oct для входных и выходных потоков устанавливают соответственно флаги десятичной (ios::dec), шестнадцатеричной (ios::hex) и восьмеричной (ios::oct) систем счисления;
· ws действует только при вводе (определен для входных потоков в классе istream) и устанавливает флаг ios::skipws, тем самым заставляя поток игнорировать ведущие пробельные символы;
· ends действует только при выводе (определен для выходных потоков в классе ostream) и обеспечивает помещение в поток нулевого признака конца строки ‘\0’;
· flush действует только при выводе и очищает выходной поток (выгружает содержимое его буфера, записывая данные на соответствующие физические устройства);
· endl действует только при выводе и помещает в выходной поток символ конца строки ‘\n’, после чего очищает поток, как и манипулятор flush.
|
Использование манипуляторов dec, hex и oct не требует дополнительных пояснений:
cout «15 «oct «15 «hex «15; // Выводит 1517f
Манипулятор endl рекомендуется использовать при каждом выводе, который должен быть незамедлительно воспринят пользователем, например:
cout << "Ждите! Идет выполнение операции." << endl;
При отсутствии endl здесь нельзя гарантировать, что сообщение не останется в буфере потока cout до окончания выполнения операции. По этой же причине рекомендуется с помощью манипулятора flush «сбрасывать» буфер потока при выводе на экран подсказки до последующего ввода информации:
cout << "Имя файла: " << flush; cin >> fileName;
Формат декларации манипуляторов без параметров:
оstream & endl(ostream&); // вставляет конец строки и flush
ostream & ends(ostream&); // вставляет нулевой конец строки
ostream & flush(ostream&);// очищает ostream
ios & dec(ios&); // устанавливает десятичное основание
ios & hex (ios&); // шестнадцатеричное основание
ios & oct(ios&); // восьмеричное основание
istream & ws (istream&); // извлекает пробельные символы
Таким образом, оба класса istream и ostream перегружают соответственно операции извлечения и помещения для второго операнда — указателя на функцию-манипулятор.
Кроме использования стандартных манипуляторов программист может создавать собственные манипуляторы. Их аргумент и код возврата должен иметь тип ссылки на соответствующий потоковый класс.
Параметризованные манипуляторы выполняют над потоком действия, специфицированные указанным значением аргумента.
· setbase(int) устанавливает основание системы счисления, манипулируя флагами форматирования ios::dec, ios::oct и ios::hex потока; значениями параметра могут быть 0, 8, 10 или 16. При использовании параметра 0 основание счисления при выводе выбирается десятичным, а при вводе нулевой параметр означает, что целые десятичные цифры должны обрабатываться по правилам стандарта ANSI языка Си.
|
· resetiosflags(long) для входных и выходных потоков сбрасывает флаги форматирования, биты которых установлены в переданном параметре.
· setiosflags(long) для входных и выходных потоков устанавливает флаги форматирования, биты которых установлены в переданном параметре.
· setfill(int) устанавливает код символа заполнения для ios::x_fill в соответствии со значением параметра.
· setprecision(int) задает точность представления вещественных чисел (значение ios::precision).
· setw(int) устанавливает ширину поля входных и выходных потоков (значение ios::width). Действие распространяется до первой операции обмена данными с потоком.
|
|
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!