Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_Obektno-orientirovannoe_programmirovan...doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
351.74 Кб
Скачать

Int width( int w);

позволяет задать ширину поля, равную w символов. Однако, если размер выводимого данного превосходит заданную ширину поля, то будет использоваться такая ширина поля, которая необходима для вывода этого данного.

С помощью функции precision() можно изменить количество цифр после десятичной точки при выводе значения типа float ( по умолчанию выводится шесть цифр). Прототип этой функции имеет вид:

Int precision( int p);

где p – это точность, т.е. число выводимых цифр после запятой.

По умолчанию, при заполнении поля вывода используются пробелы. Используя функцию fill(), можно изменить символ заполнения. Прототип этой функции:

char fill (char ch);

В листинге 6.2 приведен пример программы, которая иллюстрирует работу функций width(), precision() и fill().

Листинг 6.2.

#include <iostream.h>

main()

{

cout.width(10); // установка минимальной ширины поля

cout << "Привет" << '\n';//по умолчанию выравнивание по правому краю

cout.fill('%'); // установка символа заполнения

cout.width(10); // установка минимальной ширины поля

cout << "Привет" << '\n'; // по умолчанию выравнивание по правому краю

cout.setf(ios::left); // выравнивание по левому краю

cout.width(10); // установка минимальной ширины поля

cout << "Привет" << '\n'; // выравнивание по левому краю

cout.width(10); // установка минимальной ширины поля

cout << 123.234567 << '\n'; // по умолчанию выводится 6 цифр после точки

cout.width(10); // установка минимальной ширины поля

cout.precision(3); // установка точности

cout << 123.234567 << '\n'; // точность равна 3 цифры после точки

return 0;

}

Результаты работы этой программы

Привет

%%%%Привет

Привет%%%%

123.234567

123.235%%%

Следует обратить внимание на то, что ширина поля устанавливается перед каждым оператором вывода.

6.3 Манипуляторы ввода – вывода

Являются специальными функциями формата ввода-вывода, которые могут находиться в теле оператора ввода-вывода, в отличие от функций-членов ios. Их использование может быть более удобным, чем использование флагов формата ios и функций, рассмотренных в п.6.2. Манипуляторы проще в использовании и позволяют писать программы более компактно.

Наиболее часто используемые манипуляторы показаны в табл.6.2. Для доступа к манипуляторам с параметрами (таким, как setw()), необходимо включить в программу файл iomanip.h. В этом нет необходимости при использовании манипуляторов без параметров.

Примечание.

Манипулятор ввода-вывода влияет только на поток, который является частью выражения ввода-вывода, содержащего манипулятор.

В листинге 6.3 показан пример использования манипуляторов для форматирования операций вставки в поток.

Таблица 6.2. Манипуляторы ввода-вывода.

Манипулятор

Назначение

Ввод-вывод

dec

Вывод в десятичной системе счисления.

Вывод

endl

Вывод символа новой строки и флэширование (очистка буфера потока)

Вывод

ends

Вывод нуля (NULL)

Вывод

flush

Флэширование

Вывод

hex

Вывод в шестнадцатеричной системе счисления.

Вывод

oct

Вывод в восьмеричной системе счисления.

Вывод

setfill(int ch)

Устанавливает символ заполнения ch.

Вывод

setprecision( int p)

Задает число цифр после десятичной точки

Вывод

setw(int w)

Задает w позиций ширины поля

Вывод

ws

Пропуск начальных побелов

Ввод

Листинг 6.3.Использование манипуляторов при выводе данных.

#include <iostream.h>

#include <iomanip.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]