Программирование >>  Инициализация объектов класса, структура 

1 ... 356 357 358 [ 359 ] 360 361 362 ... 395


то пользуемся манипулятором internal, который выравнивает знак по левой границе, а значение - по правой, заполняя пустое пространство пробелами. Если же нужен другой символ, то можно применить манипулятор setfill() . Так

cout << setw(6) << setfill(%) << 100 << endl;

печатает:

%%%100

В табл. 20.1 приведен полн1й перечень предопределенных манипуляторов. Таблица 20.1. Манипуляторы

Манипулятор

Назначение

boolalpha

Представлять true и false в виде строк

*noboolalpha

Представлять true и false как 1 и 0

Showbase

Печатать префикс, обозначающий систему счисления

*noshowbase

Не печатать префикс система: счисления

showpoint

Всегда печатать десятичную точку

*noshowpoint

Печатать десятичную точку только в том случае, если дробная часть ненулевая

showpos

Печатать + для неотрицательных чисел

*noshowpos

Не печатать + для неотрицательных чисел

Манипулятор

Назначение

*skipws

Пропускать пробельные символы в операторах ввода

noskipws

Не пропускать пробельные символы в операторах ввода

uppercase

Печатать 0X при выводе в шестнадцатеричной системе счисления; E - при выводе в научной нотации

*nouppercase

Печатать 0x при выводе в шестнадцатеричной системе счисления; e - при выводе в научной нотации

*dec

Печатать в десятичной системе

Печатать в шестнадцатеричной системе

Печатать в восьмеричной системе



left

right internal

*fixed scientific

flush

ends endl ws

Добавлять символ заполнения справа от значения Добавлять символ заполнения слева от значения Добавлять символ заполнения между знаком и значением

Отображать число с плавающей точкой в десятичной нотации Отображать число с плавающей точкой в научной нотации

Сбросить буфер ostream

Вставить нулевой символ, затем сбросить буфер ostream Вставить символ новой строки, затем сбросить буфер ostream Пропускать пробельные символы

для этих манипуляторов требуется #include <ionamiip>

setfill( ch)

Setprecision( n ) setw( w ) setbase( b )

Заполнять пустое место символом ch

Установить точность вывода числа с плавающей точкой равной n Установить ширину ноля ввода или вывода равной w Выводить целые числа по основанию b

* обозначает состояние потока но умолчанию

20.10. Сильно типизированная библиотека

Библиотека iostream сильно типизирована. Например, попытка прочитать из объекта класса ostream или записать в объект класса istream помечается компилятором как

#include <iostream> #include <fstream> class Screen;

extern istream& operator ( istream&, const Screens ); extern void print( ostreams );

нарушение типизации. Так, если имеется набор объявлений:

ifstream inFile;

то следующие две инструкции приводят к нарушению типизации, обнаруживаемому во время компиляции:



int main()

Screen myScreen;

ошибка: ожидается ostream& print( cin >> myScreen );

ошибка: ожидается оператор >>

inFile << ошибка: оператор вода ;

Средства ввода/вывода включены в состав стандартной библиотеки C++. В главе 20 библиотека iostream описана не полностью, в частности вопрос о создании определенных пользователем манипуляторов и буферных классов остался за рамками введения в язык. Мы сосредоточили внимание лишь на той части библиотеки iostream, которая имеет основополагающее значение для программного ввода/вывода.



1 ... 356 357 358 [ 359 ] 360 361 362 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика