Программирование >>  Расширенная версия языка c++ 

1 ... 79 80 81 [ 82 ] 83 84 85 ... 227


i Примврь!

1. В этом примере показана программа, которая иллюстрирует работу функций формата:

tinclude <io3treain> . .:. * .

using namespace std; . . ..

int main()

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

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

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

cout.width(01; установка ширины поля

cou Привет \п; по умолчанию выравнивание вправо

cout. set! (.LOS; ; left) ; выравнивание влево

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

cou Привет \п; выравнивание влево

<iostream> как одна из форм целого. В некоторгх компиляторах при выполнении каждой операции вывода значение ширины поля возвращается к своему состоянию по умолчанию, поэтому перед каждой инструкцией вывода может понадобиться устанавливать минимальную ширину поля.

После установки минимальной ширины поля, если выводимое значение требует поле, меньшее заданной ширины, остаток поля заполняется текущим символом заполнения (по умолчанию пробелом) гак, чтобы бьиа занята вся ширина поля. Однако запомните, если размер вхводимого значения превосходит минимальную ширину поля, будет занято столько символов, сколько нужно. Выводимое значение не усекается.

По умолчанию при выводе значений с плавающей точкой точность равна

шести цифрам. Однако с помощью функции precision() это число можно изменить. Ниже показан прототип функции precision():

streamsize precision (streasisize р);

Точность (число выводимых цифр после запятой) задается параметром р, а возвращает функция прежнее значение точности.

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

char fill(char eh) ;

После вызова функции fill () символ ch становится новым символом заполнения, а функция возвращает прежнее значение символа заполнения.



int mainO

double x;

cout.precision(4);

cou x sqrt(x) x2\n\n ;

for(x = 2.0; x <= 20.0; x++) { cout.width(7); COU X ; cout.width(7); cout sqrt (x) ; cout.width(7);

cout

return 0;

После выполнения программы на экран выводится следующее:

sqrt(X)

1 -1

1.414

1.732

.. ......

cout.width{10); установка ширины поля cout.precision(lO); установка точности в 10 цифр cout 123.234567 \п;

установка ширины поля

установка в 6 цифр

cout 123.234567 Лп;

return 0;

После выполнения программы на экран выводится следующее:

Привет

Привбт%%%%

123.234567 123.235%%%

Обратите внимание, что ширина поля перед каждой инст-

рукцией вывода.

2. В следующей программа зано, как с помощью функций установки флагов формата ввода/вывода C++ создать выровненную таблицу чисел:

Создание таблицы квадратных корней и квадратов ♦include <iostream> ftinclude <cinath> using namespace std;



2. 236

25

2. S-jg

2. 646

49 :

2. 828

,. ..

3. 162

3. 317

3. 464

3. 606

169

3. 742

3. 873

4. 123

4.243

4. 359

4. 472

Упражнения

Разработайте программу для печати таблицы натуральных и десятичных логарифмов чисел от 2 до 100. Формат таблицы следующий: правое выравнивание, ширина поля - 10 символов, точность - 5 десятичных позиций.

Создайте функции ег() со следующим прототипом:

void center (char *s) ;

Эга функция должна устанавливать заданную строку в центр экрана. Для реализации этой задачи воспользуйтесь функцией width(). Предполагается, что ширина экрана равна 80 символам. (Для простоты считайте, что длина строки не превышает 80 символов.) Напишите программу, иллюстрирующую работу этой функции.

3. Поэкспериментируйте с флагами и функциями формата. После того как вы ближе познакомитесь с системой ввода/вывода C++, вы никогда не ошибетесь в выборе нужного формата вывода.

8.4. Манипуляторы ввода/вывода

В системе ввода/вывода C++ имеется еще один способ форматирования информации. Этот способ подразумевает использование специальнхх функций - манипуляторов ввода/вывода (J/Umanipulators). Как вы увидите далее, манипуляторы ввода/вывода в некоторых ситуациях, более удоб-

ными, чем флаги и функции формата класса ios.



1 ... 79 80 81 [ 82 ] 83 84 85 ... 227

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