Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования / Литература по C++ / С.Липпман.С++ для начинающих.pdf
Скачиваний:
143
Добавлен:
31.05.2015
Размер:
5.55 Mб
Скачать

С++ для начинающих

 

1086

left

 

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

 

right

 

Добавлять символ заполнения слева от значения

internal

 

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

*fixed

 

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

scientific

 

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

flush

 

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

ends

 

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

endl

 

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

ws

 

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

 

 

 

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

setfill( ch)

 

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

 

Setprecision( n )

 

Установить точность вывода числа с плавающей точкой равной n

setw( w )

 

Установить ширину поля ввода или вывода равной w

setbase( b )

 

Выводить целые числа по основанию b

 

 

 

 

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

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

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

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

extern istream& operator>>( istream&, const Screen& ); extern void print( ostream& );

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

ifstream inFile;

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

С++ для начинающих

1087

int main()

{

Screen myScreen;

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

//ошибка: ожидается оператор >> inFile << "ошибка: оператор вывода";

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