Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Return 0;. В этом примере установка флага hex не привела ни к каким изменениям






}

 

В этом примере установка флага hex не привела ни к каким изменениям. Причиной этого явилось то, что одновременно с установленным флагом hex остался установленным и флаг dec. Для исправления ситуации необходимо сначала отключить флаг dec, а затем уже установить флаг hex:

 

cout.unsetf (ios:: dec); // Отключаем флаг dec

cout.setf (ios:: hex); // Включаем флаг hex - хотим видеть на экране ff

cout < < 255 < < endl; // На экране видим ff - то, что хотели

Среди всех флагов можно выделить три группы, в каждой из которых флаги управляют одной и той же характеристикой ввода / вывода, но являются взаимоисключающими. Флагам каждой из этих групп в классе ios присвоены обобщающие имена:

 

Группа Флаги Обобщающее имя
Флаги основания систем счисления dec, oct, hex basefield
Флаги выравнивания left, right, internal adjustfield
Флаги формата вещественных значений scientific, fixed floatfield

 

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

 

cout.unsetf (ios:: basefield ); // Отключаем флаги dec , oct , hex за один прем

 

Более того, функцию setf можно использовать с двумя параметрами:

 

setf ( новые флаги, маска )

 

В этом случае функция setf устанавливает только те флаги, которые одновременно присутствуют и в первом и во втором параметре, а те флаги, которые присутствуют во втором параметре, но отсутствуют в первом, будут сброшены. Это дает возможность отключать и включать флаги за один вызов функции setf. Например, для установки любого флага из группы basefield достаточно использовать всего один оператор:

cout.setf (ios:: hex, ios:: basefield);

Здесь второй параметр содержит три флага: dec , oct , hex . Первый параметр содержит флаг hex. Этот флаг будет установлен, а флаги dec и oct будут сброшены.

В классе cout имеются еще несколько функций управляющих форматом вывода данных. К ним относятся:

· precision - определяет точность представления вещественных значений;

· width - устанавливает ширину поля вывода;

· fill - определяет символ заполнения при выводе данных.

Примеры использования этих функций

 

Пример 1.

 

cout.width (10); //Ширина поля вывода 10 позиций

cout < < 123 < < endl; // На экран выведено 7 пробелов и число 123

cout.fill (‘.’); // Символ заполнения ‘.’

cout.width (10); //Ширина поля вывода 10 позиций

cout < < 123 < < endl; // На экран выведено …….123

 

Пример 2

 

cout.width (10); //Ширина поля вывода 10 позиций

cout.setf (ios:: fixed); //Вывод вещественных значений с фиксированной точкой

cout.precision (3); //Ширина поля вывода 10 позиций

cout < < 1.2345 < < endl; // На экран выведено 7 пробелов и число 1.234

cout.fill (‘.’); // Символ заполнения ‘.’

cout.width (10); //Ширина поля вывода 10 позиций

cout < < 123 < < endl; // На экран выведено …….123

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.