Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Return 0;



}

В этом примере установка флага 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





Дата публикования: 2014-11-26; Прочитано: 180 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...