C++ Программирование в среде С++ Builder 5



             

Манипуляторы


Манипуляторы потоков являются по существу функциями, которые можно вызывать непосредственно в цепочке операций извлечения или передачи в поток. Различают простые и параметризованные манипуляторы. У простых манипуляторов аргументы отсутствуют. Параметризованные манипуляторы имеют аргумент.

Ниже приводится сводка имеющихся манипуляторов, как простых, так и параметризованных. Они Перечислены в алфавитном порядке.

Таблица 9.2. Простые и параметризованные манипуляторы

Манипулятор

Описание

dec

Задает десятичную базу преобразования.

end1

Передает в поток символ новой строки и сбрасывает поток.

ends

Передает в поток символ завершающего строку нуля.

flush

Сбрасывает выходной поток.

hex

Задает шестнадцатеричную базу преобразования.

lock(ios Sir)

Блокирует дескриптор файла потока ir.

oct

Задает восьмеричную базу преобразования.

resetiosflags(int f)

Сбрасывает флаги, биты которых установлены в f.

setbase(int b)

Устанавливает базу преобразования (0, 8, 10 или 16).

setiosflags(int f)

Устанавливает флаги, биты которых установлены в f.

setfill(int c)

Задает символ заполнения (аналогичен функции

fiilO).

setprecision(long p)

Задает точность (аналогичен функции precision ()).

setw(iong w)

Задает ширину поля (аналогичен функции width ()).

lunlock(ios &ir)

Разблокирует дескриптор файла для потока ir.

ws

Исключает начальные пробельные символы.

Вот пример использования некоторых манипуляторов (мы создали один свой собственный):

Листинг 9.2. Форматирование с помощью манипуляторов

/////////////////////////////////////////////////

// Manip.cpp: Демонстрация некоторых манипуляторов.

//

#include <iomanip.h>

#pragma hdrstop

#include <condefs.h>

//////////////////////////////////////////////////

// Манипулятор, определенный пользователем - звонок.

//

ostream shell(ostream &os)

{

return os<< '\a';

#pragma argsused

int main(int argc, char* argv[])

{

cout “ bell; // Тестирование манипулятора bell.




Содержание  Назад  Вперед