![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Return 0;. В этом примере установка флага hex не привела ни к каким изменениям
}
В этом примере установка флага hex не привела ни к каким изменениям. Причиной этого явилось то, что одновременно с установленным флагом hex остался установленным и флаг dec. Для исправления ситуации необходимо сначала отключить флаг dec, а затем уже установить флаг hex:
cout.unsetf (ios:: dec); // Отключаем флаг dec cout.setf (ios:: hex); // Включаем флаг hex - хотим видеть на экране ff cout < < 255 < < endl; // На экране видим ff - то, что хотели Среди всех флагов можно выделить три группы, в каждой из которых флаги управляют одной и той же характеристикой ввода / вывода, но являются взаимоисключающими. Флагам каждой из этих групп в классе ios присвоены обобщающие имена:
Обобщающие имена групп удобно использовать для выполнения операции со всеми флагами группы, например, для сброса всех флагов группы:
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
|