русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Форматирование с использованием флагов


Дата добавления: 2015-01-08; просмотров: 914; Нарушение авторских прав


Форматом ввода-вывода можно управлять с помощью флагов форматирования потока, объявленных в классе ios. Их описание приведено в таблице 3.

Таблица 3 – Флаги форматирования

Флаг Описание
booalpha Выводить данные типа bool в символьном виде, т.е. 0 – false, !0 – true
dec Использовать десятичное представление
fixed Представление вещественных чисел в формате с фиксированной точкой
hex Использовать шестнадцатеричное представление
internal Помещать символ-заполнитель (пробел) после знака числа или символа-признака основания системы счисления
left Выравнивание по левому краю поля
oct Использовать восьмеричное представление
right Выравнивание по правому краю поля
scientific Представление вещественных чисел в научном формате (мантисса и порядок, разделённые символом 'e' или 'E')
showbase Выводить признак системы счисления
showpoint В вещественных числах выводить точку даже для нулевой дробной части
showpos При выводе положительных чисел выводить знак «+»
skipws Пропускать пробельные символы при вводе
stdio Освобождать стандартные потоки stdout, stderr языка C после каждого вывода в поток
unitbuf Освобождать буферы (выводить содержимое) всех потоков после каждого включения (вывода) в поток
uppercase При выводе чисел использовать буквы верхнего регистра ('E' вместо 'e', 'X' вместо 'x')

Флаги форматирования объявлены в классе ios в виде констант, описанных в таблице 3.

Чтобы использовать форматирование при выводе необходимо указать соответствующие флаги с использованием метода flags класса cout. Понятия класса и метода относятся к объектно-ориентированному программированию и будут рассмотрены позже. В приведённом ниже примере устанавливается вывод знаков '+', строковое представление логических значений и вывод вещественных чисел в фиксированном формате.



#include <iostream>

using namespace std;

void main()

{

int a = 20;

double b = 100000.12345678;

bool c = false;

cout << a << '\t' << b << '\t' << c << '\n';

cout.flags(ios::boolalpha | ios::showpos | ios::fixed);

cout << a << '\t' << b << '\t' << c << '\n';

}

Результатом выполнения этой программы будет следующий вывод:

20 100000 0

+20 +100000.123457 false

Обратите внимание, каким образом задаются флаги форматирования. Для указания нескольких флагов используется операция побитового сложения '|', которая описана в пункте 4.7.6. Там же описан принцип работы с битовыми масками и флагами, с помощью которого реализованы флаги форматирования.

Так как флаги являются константами, объявленными в классе ios, то для их использования необходимо явное указание этого класса (ios::).

Также можно устанавливать отдельные флаги форматирования с помощью метода setf. Например,

cout.setf(ios::boolalpha);

cout.setf(ios::showpos | ios::fixed);

При использовании setf значения старых флагов не теряются.

Для сброса флага используется метод unsetf. Например, сброс флагов hex и boolalpha:

cout.unsetf(ios::boolalpha);

cout.unsetf(ios::hex);

или одним оператором

cout.unsetf(ios::boolalpha | ios::hex);



<== предыдущая лекция | следующая лекция ==>
Встроенные потоки ввода–вывода | Использование манипуляторов ввода-вывода


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.121 сек.