Программирование >>  Процедурные приложения 

1 ... 65 66 67 [ 68 ] 69 70 71 ... 150


Когда установлен флаг scientificили fixed, функция precision() задает точность представления чисел с плавающей запятой, в противном случае определяет общее количество значащих цифр. Аналогичные действия выполняет манипулятор setprecision() . По умолчанию точность равна 6. Вызванная без аргументов, функция возвращает текущее значение точности.

Функция width() определяет минимальную ширину поля вывода в символах. Если при выводе количество символов оказывается меньшим ширины поля, оно дополняется специальными символами-заполнителями. После каждой операции записи значение ширины поля сбрасывается в 0. Аналогичные действия выполняет манипулятор setw( ) . Вызванная без аргументов, функция возвращает текущую ширину поля.

Манипуляторы setfill () , setprecision() и setw(), также являющиеся членами класса ios, относятся к категории параметризованных, и для работы с ними необходимо дополнительно подключить к программе файл IOMANIP.H.

Следующая программа является написанным на C++ аналогом программы printf.c, рассмотренной в предыдущей главе.

ioflags.cpp

Эта программа на языке C++ демонстрирует применение флагов и функций форматирования. #include <strstrea.h>

#define MAX LENGTH 20 void row (void); main{) {

char с = A,psz[] = Строка для экспериментов , strbuffer[MAX LENGTH]; int ivalue = 1234; double dPi = 3.14159265;

вывод символа с row(); [ 1] cout<< с;

вывод ASCII-кода символа с row() ; [2] cout << (int)c;

вывод символа с ASCII-кодом 90

row (); [ 3]

cout << (char)90;

вывод значения ivalue в восьмеричной системе

row(); [4]

cout << oct << ivalue;

вывод значения ivalue в шестнадцатеричной системе сбуквами в нижнем регистре

row (); [5]

cout << hex << ivalue;

вывод значения ivalue в шестнадцатеричной системе

с буквами в верхнем регистре

row (); [ 6]

cout.setf(ios::uppercase);

cout << hex << ivalue;

cout.unsetf(ios::uppercase); отмена верхнего регистра символов cout<< dec; возврат к десятичной системе

вывод одного символа, минимальная ширина поля равна 5, выравнивание вправо с дополнением пробелами

row(); [ 7]

cout.width(5); cout<< с;

вывод одного символа, минимальная ширина поля равна 5, выравнивание влево с дополнением пробелами

row(); [ 8] cout.width(5); cout.setf(ios::left); cout << c;

cout.unsetf(ios::left);



вывод строки, отображаются 2 4 символа (); [9] cout psz; вывод минимум 5-ти символов строки (); [10] cout.width(5); cout psz; вывод минимум 38-ми символов строки, выравнивание вправо с дополнением пробелами 3w(); [11] cout.width(38); cout << psz; вывод минимум 38-ми символов строки, выравнивание влево с дополнением пробелами 3w (); [12]

ut.width(38);

ut.setf(ios::left);

ut << psz;

ut.unsetf(ios::left);

вывод значения ivalue, по умолчанию отображаются 4 цифры row(); [13] cout ivalue;

вывод значения ivalue со знаком w (); [14] ut.setf(ios::showpos); ut << ivalue; ut.unsetf(ios::showpos) ;

вывод значения ivalue минимумиз 3-х цифр, отображаются 4 цифры w (); [15]

ut.width(3); cout << ivalue; вывод значения ivalue минимум из 10-ти цифр, } выравнивание вправо с дополнением пробелами row(); [16]

cout.width(10); cout<< ivalue;

вывод значения ivalue минимум из 10-ти цифр, выравнивание влево с дополнением пробелами row(); [17]

cout.width(10); cout.setf(ios::left) ; cout << ivalue; cout.unsetf(ios::left);

вывод значения ivalue минимум из 10-ти цифр, выравнивание вправо с дополнением нулями row (); [18]

ut.width (10); ut.fill (0); ut << ivalue; ut.fill ( );

вывод значения dPiс форматированием по умолчанию w(); [19]

ut<< dPi;

вывод значения dPi, минимальная ширина поля равна 20, выравнивание вправо с дополнением пробелами w{); [20]

cout.width (20); cout<< dPi;

вывод значения dPi, минимальная ширина поля равна 20, выравнивание вправо с дополнением нулями row(); [21]

cout.width(20); cout.fill(0); cout << dPi; cout. fill ( );

вывод значения dPi, минимальная ширина поля равна 20, выравнивание влево с дополнением пробелами



row(); [22]

cout.width(20);

cout.setf(ios::left) ; cout<< dPi;

вывод значения dPi, минимальная ширина поля равна 20, выравнивание влево с дополнением нулями row(); [23] cout.width(20); cout. fill (0); cout << dPi; cout.unsetf(ios::left); cout.fill( );

вывод 19-ти символов строки, минимальная ширина поля равна 19 row(); [24]

ostrstream(strbuffer, 20).write(psz,19)<< ends; cout.width(19);

cout << strbuffer;

вывод первых двух символов строки

row(); [25]

ostrstream(strbuffer, 3).write(psz,2) << ends; cout<< strbuffer;

вывод первых двух символов строки, минимальная ширина поля равна 19, выравнивание вправо с дополнением пробелами row(); [26] cout.width(19); cout << strbuffer;

вывод первых двух символов строки, минимальная ширина поля равна 19, выравнивание влево с дополнением пробелами row(); [27] cout.width(19) cout .setf (ios :: left) ; cout << strbuffer; cout .unsetf (ios :: left) ; вывод значенияdPi из5-ти значащих цифр row (); [28]

cout .precision (9); cout << dPi;

вывод значения dPiиз 2-х значащих цифр, минимальная ширина поля равна 20, выравнивание вправо с дополнением пробелами

row (); [29]

cout. width (20) ; cout .precision (2); cout << dPi;

выводзначенияdPi из 4-хзначащихцифр

row () ; [30]

cout .precision (4); cout << dPi;

вывод значения dPi из 4-х значащих цифр, минимальная ширина поля равна 20, выравнивание вправо с дополнением пробелами

row(); [31]

cout. width(20); cout<< dPi;

вывод значения dPi, минимальная ширина поля равна 20, 4 цифры после десятичной точки, выравнивание вправо Ис дополнением пробелами, научный формат (с экспонентой)

row (); [32]

cout . setf (ios :: scientific) ; cout. width ( 20 ); cout << dPi;

cout. unset f (ios: : scientific ); return (0); }

void row(void) { static int In = 0; cout << \n [ ; cout.width(2) ; cout<< ++ln<< ] ; }

Результат работы программы будет выглядеть следующим образом: 206



1 ... 65 66 67 [ 68 ] 69 70 71 ... 150

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