Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Самоучитель С++ - Шилдт Г.

Шилдт Г. Самоучитель С++ — Спб.: БВХ-Петербург, 2003. — 688 c.
ISBN 5-7791-0086-1
Скачать (прямая ссылка): samouchitelc2003.djvu
Предыдущая << 1 .. 71 72 73 74 75 76 < 77 > 78 79 80 81 82 83 .. 206 >> Следующая

if (f & ios:: showpos) cout << "shovjpos ус'тановлен\п,г;
else cout << "showpos сброшенХп";
if (f ? ios:: uppercase) cout « "uppercase установлєн\п";
else cout << "uppercase сброшенХп";
if(f & iosscientific) cout << "scientific установлен\п";
else cout « "scientific сброшенХп";
if(f & ios:: fixed) cout << "fixed установленХп'1;
else cout << "fixed сброшенХп";
if (f & ios: :unitbuf) cout << "unitbuf установленХп";
else cout << "unitbuf сброшенХп";
if (f & ios::boolalpha) cout << "boolalpha установлен\пм;
else cout « "boolalpha сброшен\пм;
cout « M\n";
f;
250_____________________________________________________________Самоучитель C++
В функции showflagsO объявляется локальная переменная f типа fmtflags. Если в вашем компиляторе тип данных fmtflags не определен, объявите переменную f типа long. Ниже показан результат выполнения программы:
skipws установлен left сброшен right сброшен internal сброшен dec установлен oct сброшен hex сброшен showbase сброшен showpoint сброшен showpos сброшен uppercase сброшен S с і е nt і f і с сброшен fixed сброшен unitbuf сброшен boolalpha сброшен
skipws установлен left сброшен right сброшен internal сброшен dec установлен oct установлен hex сброшен showbase установлен showpoint сброшен showpos сброшен uppercase сброшен S с і е nt і f і с сброшен fixed установлен unitbuf сброшен boolalpha сброшен
4. В следующей программе проиллюстрирована работа второй версии функции flags()- Сначала, устанавливая флаги showpos, showbase, oct и right, мы строим маску флагов. Затем с помощью функции flags() для потока cout маска связывается с переменной флагов. С помощью функции showflags() проверяется правильность установки флагов. (Это та же функция, которая использовалась в предыдущей программе.)
^include <iostream>
using namespace std;
void showflags {) ;
Гпава 8. Введение в систему ввода/вывода C++__________________________________251
int main!)
{
// отображение состояния флагов формата по умолчанию showflags();
// устанавливаются флаги showpos, showbase, cct и right;
// остальные сбрасываются
ios::fmtflags f - ios::showpos I ios::showbase I
ios:: oct I ios::right;
cout.flags(f); // установка флагов
showflags() ;
return 0;
I
1. Напишите программу, которая бы устанавливала флаги для потока cout так, чтобы целые, если они положительны, выводились со знаком +. Покажите, что ваш набор флагов формата правилен.
2. Напишите программу, которая бы устанавливала флаги для потока cout так, чтобы всегда при выводе дробных значений были показаны десятичные точки. Кроме этого, значения с плавающей точкой должны выводиться в научной нотации с символом "Е" в верхнем регистре.
3. Напишите программу, которая сохраняет текущее состояние флагов формата, устанавливает флаги showbase и hex, выводит на экран значение 100, а затем возвращает флаги в исходное состояние.
8.3. Функции width(), precisionf) и fill()
Кроме флагов формата в классе ios определены три функции-члена. Эти функции устанавливают следующие параметры формата: ширину поля, точность и символ заполнения. Этими функциями являются соответственно функции width(), precision() и fill()
По умолчанию при выводе любого значения оно занимает столько позиций, сколько символов выводится. Однако с помощью функции width() можно задать минимальную ширину поля. Ниже показан прототип этой функции:
streams!ze width{streamsize w) ;
Ширина поля задается параметром и\ а функция возвращает предыдущую ширину поля. Тип данных streamsize определен в заголовочном файле
252
Самоучитель C++
<iostream> как одна из форм целого. В некоторых компиляторах при выполнении каждой операции вывода значение ширины поля возвращается к своему состоянию по умолчанию, поэтому перед каждой инструкцией вывода может понадобиться устанавливать минимальную ширину поля.
После установки минимальной ширины поля, если выводимое значение требует поле, меньшее заданной ширины, остаток поля заполняется текущим символом заполнения (по умолчанию пробелом) так, чтобы была занята вся ширина поля. Однако запомните, если размер выводимого значения превосходит минимальную ширину поля, будет занято столько символов, сколько нужно. Выводимое значение не усекается.
По умолчанию при выводе значений с плавающей точкой точность равна шести цифрам. Однако с помощью функции precision() это число можно изменить. Ниже показан прототип функции precision():
streams!ze precision (streamsize p) ;
Точность (число выводимых цифр после запятой) задается параметром р, а возвращает функция прежнее значение точности.
По умолчанию, если требуется заполнить свободные поля, используются пробелы. Однако с помощью функции fill() можно изменить символ заполнения. Ниже показан прототип функции fill():
char fill(char ch>;
После вызова функции fill() символ ch становится новым символом заполнения, а функция возвращает прежнее значение символа заполнения.
Предыдущая << 1 .. 71 72 73 74 75 76 < 77 > 78 79 80 81 82 83 .. 206 >> Следующая