Студопедия  
Главная страница | Контакты | Случайная страница

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

Теоретичні положення. У С++ інформацію можна виводити в широкому діапазоні форм

Читайте также:
  1. A. Поперечне положення, I позиція, передлегла частина відсутня
  2. I. Загальні положення
  3. I. Загальні положення
  4. II. Прикінцеві та перехідні положення
  5. Uml; Основні теоретичні положення
  6. Uml; Основні теоретичні положення
  7. Віхи життєвого шляху Й.Ф.Гербарта. Основні положення філософсько-психолого-педагогічної концепції видатного педагога
  8. Геополітичне положення та зовнішня політика Молдови.
  9. Геополітичне положення українських земель в період первіснообщинного ладу
  10. ГЛАВА 2. Теоретичні основи харчування

У С++ інформацію можна виводити в широкому діапазоні форм. При цьому за допомогою системи введення/виводу C++ можна форматувати дані так само, як це робила в С функція printf(). Крім того, можна змінювати певні параметри введення інформації. Кожен потік введення/виводу пов'язаний з набором прапорів формату (format flags), які управляють способом форматування інформації і є бітовими масками (bitmasks). Ці маски оголошені в класі ios як дані типа fintflags, типу що перераховує, в якому у якому визначені наступні значення:


adjustfield

basefield

boolalpha

dec

fixed

floatfield

hex

internal

left

oct

right

scientific

showbase

showpoint

showpos

skipws

unitbuf

uppercase


Ці значення визначені в класі ios і необхідні для установки або скидання прапорів формату. У таких компіляторах для зберігання прапорів формату відводиться довге ціле. Коли при введенні інформації в потік встановлений прапор skipws, початкові невидимі символи (пропуски, табуляції і символи нового рядка) отбра- сиваются. Коли прапор skipws скинутий, невидимі символи не відкидаються. Коли встановлений прапор left, відбувається вирівнювання виводу по лівому краю. Коли встановлений прапор right, відбувається вирівнювання виводу по правому краю. Коли встановлений прапор internal, для заповнення поля виводу відбувається вставка пропусків між всіма цифрами і знаками числа. Якщо всі ці прапори не встановлені, то за умовчанням використовується вирівнювання по правому краю

За умовчанням числові значення виводяться в десятковій системі числення. Проте підставу системи числення можна поміняти. Установка прапора oct веде до того, що вивід здійснюватиметься у вісімковій системі числення, а установка прапора hex — в шестнадцятерічной. Щоб повернутися до десяткової системи числення, встановите прапор dec. Установка прапора showbase веде до виведення підстави системи числення. Наприклад, шістнадцятиричне значення IF з цим прапором виводитиметься як Oxl F.

За умовчанням при виведенні значень в науковій нотації символ "е" виводіться в нижньому регістрі. Окрім цього, при виведенні шістнадцятиричного значення символ "х" теж виводиться в нижньому регістрі. При установці прапора uppercase, ці символи виводяться у верхньому регістрі. Установка прапора showpos приводить до виведення знаку + перед позитивними значеннями.

Установка прапора showpoint веде до появи десяткової крапки і послідуючих нулів при виведенні будь-яких значень з плаваючою крапкою. При установці прапора scientific числа з плаваючою крапкою виводяться в наукової нотації. При установці прапора fixed числа з плаваючою точкою виводяться в звичайній нотації. Якщо жоден з цих прапорів не встановлений, компілятор сам вибирає відповідний спосіб виводу. Якщо встановлений прапор unitbuf, то буфер очищається (flush) після кожної операції вставки (insertion

При встановленому прапорі boolalpha значення булева типа виводяться у вигляді ключових слів true і false. Одночасно на всі поля, визначені з прапорами oct, dec і hex, можна послатися за допомогою прапора basefield. Аналогічно на поля, визначені з прапорами left, right і internal, можна послатися за допомогою прапора adjustfield. І нарешті, на поля з прапорами scientific і fixed можна послатися за допомогою прапора floatfield. Для установки прапора формату користуйтеся функцією setf(). Ця функція є членом класу ios. Тут показана її основна форма: fmtflags setf(fmtflags прапори);

Ця функція повертає попередні установки прапорів формату і устанав- ліваєт нові, задані значенням прапори. (Значення всіх останніх прапорів не змінюються.) Наприклад, для установки прапора showpos можна користуватися наступною інструкцією: потік_ввода/вивода.setf(ios::showpos); Тут потік введення/виводу — це той потік, на який треба вплинути. Прапор showpos — це константа, що перераховує, усередині класу ios. Функція setf() є членом класу ios і впливає на створених цим класом потоки введення/виводу. Тому будь-який виклик функції setfq робиться відносно конкретного потоку.

 




Дата добавления: 2015-01-05; просмотров: 33 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав