- •Глава 2. Модульное программирование 72
 - •Глава 3. Технология создания программ 102
 - •Часть II. Объектно-ориентированное программирование 173
 - •Глава 4. Классы 178
 - •Глава 13. Итераторы и функциональные объекты 328
 - •Глава 14. Алгоритмы 343
 - •Глава 15. Средства для численных расчетов 369
 - •Глава 16. Другие средства стандартной библиотеки 378
 - •Часть 1
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •If ( выражение ) оператор_1; [else оператор_2;]
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •If (f) cout « "ХпРезультат return 0;
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Int* p (&а); // то же самое другим способом
 - •Часть I. Структурное программирование
 - •5 4 2 1 3 // Порядок интерпретации описания
 - •56 Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Int b[nstr][nstb]; // описание массива
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Глава 2
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Int sum(int a. Int b); // объявление функции
 - •Глава 2. Модульное программирование
 - •Void print_worker(Worker); //объявление функции
 - •Часть I. Структурное программирование
 - •Int fl(){return 1;} //правильно
 - •Void f2(){return 1;} // неправильно. F2 не должна возвращать значение
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •92 Часть I. Структурное программирование
 - •Глава 2. Модульное программирование 93
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Void fund (double); // Перегрузка
 - •Void func2(int); // Верно (повторное объявление)
 - •Часть I. Структурное программирование
 - •Глава 2. Модульное программирование
 - •Глава 3
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ 107
 - •II Комментарий, описывающий,
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •If(!remove (&pbeg. &pend. 5))cout « "не найден";
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Глава 3. Технология создания программ
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Int f; //.Частота регенерации
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •168 Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть I. Структурное программирование
 - •Часть II
 - •Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4
 - •Глава 4. Классы
 - •180 Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Int a::count: // Определение в глобальной области
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 4. Классы
 - •Глава 5
 - •Глава 5. Наследование
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 5. Наследование
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 5. Наследование
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 5. Наследование
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 5. Наследование
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 6
 - •Часть II. Объектно-ориентированное программирование
 - •Void add(int d): // Добавление узла в конец списка
 - •Глава 6. Шаблоны классов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 6. Шаблоны классов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 6. Шаблоны классов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 6. Шаблоны классов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 6. Шаблоны классов
 - •Глава 7
 - •Глава 7. Обработка исключительных ситуаций
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 7. Обработка исключительных ситуаций
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 7. Обработка исключительных ситуаций
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 7. Обработка исключительных ситуаций
 - •230 Часть II. Объектно-ориентированное программирование
 - •Глава 8
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 8. Преобразования типов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 8. Преобразование типов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 8. Преобразования типов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 8. Преобразования типов
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 9
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 9. Рекомендации по программированию
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 9. Рекомендации по программированию
 - •Часть II. Объектно-ориентированное программирование
 - •Глава 9. Рекомендации по программированию
 - •250 Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •254 Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Часть II. Объектно-ориентированное программирование
 - •Часть III
 - •Часть III. Стандартная библиотека
 - •Глава 10 Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Часть III. Стандартная библиотека
 - •Глава 10. Потоковые классы
 - •Глава 11
 - •Глава 11. Строки
 - •Часть III. Стандартная библиотека
 - •Глава 11. Строки
 - •Часть III. Стандартная библиотека
 - •Глава 11. Строки
 - •Часть III. Стандартная библиотека
 - •Глава 11. Строки
 - •Часть III. Стандартная библиотека
 - •Глава 12
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы 317
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Часть III. Стандартная библиотека
 - •Глава 12. Контейнерные классы
 - •Глава 13
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 13. Итераторы и функциональные объекты
 - •Часть III. Стандартная библиотека
 - •Глава 14
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы 361
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 14. Алгоритмы
 - •Часть III. Стандартная библиотека
 - •Глава 15
 - •Часть III. Стандартная библиотека
 - •Глава 15. Средства для численных расчетов
 - •Часть III. Стандартная библиотека
 - •Глава 15. Средства для численных расчетов
 - •Часть III. Стандартная библиотека
 - •Глава 15. Средства для численных расчетов
 - •Часть III. Стандартная библиотека
 - •Глава 15. Средства для численных расчетов
 - •Глава 16
 - •Глава 16. Другие средства стандартной библиотеки
 - •Часть III. Стандартная библиотека
 - •396 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
 - •Int level; // флаг состояния буфера
 - •Int bsize; // размер внутреннего буфера
 - •I0lbf 1 построчная буферизация текстового файла;
 - •400 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
 - •402 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
 - •404 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
 - •406 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
 - •446 Приложение 6. Функции стандартной библиотеки
 
Глава 10. Потоковые классы
269
Если формат вывода, используемый по умолчанию, не устраивает программиста, он может скорректировать его с помощью методов классов ввода/вывода, флагов форматирования и так называемых манипуляторов. Об этом рассказывается далее.
Форматирование данных
В потоковых классах форматирование выполняется тремя способами — с помощью флагов, манипуляторов и форматирующих методов.
Флаги и форматирующие методы
Флаги представляют собой отдельные биты, объединенные в поле x_flags типа long класса ios. Флаги перечислены в табл. 10.1.
Таблица 10.1. Флаги форматирования
Флаг  | 
			Положение  | 
			Умолчание  | 
			Описание действия при установленном бите  | 
		
skipws  | 
			0x0001  | 
			+  | 
			При извлечении пробельные символы игнорируются  | 
		
left  | 
			0x0002  | 
			
  | 
			Выравнивание по левому краю поля  | 
		
I right  | 
			0x0004  | 
			+  | 
			Выравнивание по правому краю поля  | 
		
internal  | 
			0x0008  | 
			
  | 
			Знак числа выводится по левому краю, число — по правому. Промежуток заполняется символами x_fill (см. ниже), по умолчанию пробелами  | 
		
dec  | 
			0x0010  | 
			+  | 
			Десятичная система счисления  | 
		
oct  | 
			0x0020  | 
			
  | 
			Восьмеричная система счисления  | 
		
hex  | 
			0x0040  | 
			
  | 
			Шестнадцатеричная система счисления  | 
		
showbase  | 
			0x0080  | 
			
  | 
			Выводится основание системы счисления (Ох для шестнадцатеричных чисел и 0 для восьмеричных)  | 
		
showpoint  | 
			0x0100  | 
			
  | 
			При выводе вещественных чисел печатать десятичную точку и дробную часть  | 
		
uppercase  | 
			0x0200  | 
			
  | 
			При выводе использовать символы верхнего регистра  | 
		
showpos  | 
			0x0400  | 
			
  | 
			Печатать знак при выводе положительных чисел  | 
		
scientific  | 
			0x0800  | 
			
  | 
			Печатать вещественные числа в форме мантиссы с порядком  | 
		
fixed  | 
			0x1000  | 
			
  | 
			Печатать вещественные числа в форме с фиксированной точкой (точность определяется полем x_precision, см. ниже)  | 
		
unitbuf  | 
			0x2000  | 
			
  | 
			Выгружать буферы всех потоков после каждого вывода  | 
		
stdio  | 
			0x4000  | 
			
  | 
			Выгружать буферы потоков stdout и stderr после каждого вывода  | 
		
270
Часть III. Стандартная библиотека
ПРИМЕЧАНИЕ
Флаги (left, right и internal), (dec, oct и hex), а также (scientific и fixed) взаимно исключают друг друга, то есть в каждый момент может быть установлен только один флаг из каждой группы.
Для управления флагами в классе ios есть методы flags, setf и unsetf:
long ios::flags(); — возвращает текущие флаги потока;
long ios: : flags (long); — присваивает флагам значение параметра;
long ios:: setf (long, long): — присваивает флагам, биты которых установлены
в первом параметре, значение соответствующих
битов второго параметра; long ios:: setf (long): — устанавливает флаги, биты которых установлены
в параметре; long ios::unsetf(long): — сбрасывает флаги, биты которых установлены в
параметре.
Все функции возвращают прежние флаги потока.
Кроме флагов, для форматирования используются следующие поля класса ios:
int x_width — минимальная ширина поля вывода;
int x_precision — количество цифр в дробной части при выводе вещественных чисел с фиксированной точкой или общее количество значащих цифр при выводе в форме с мантиссой и пордком;
int x_fill — символ заполнения поля вывода.
Для управления этими полями используются методы width, precision и fill:
int ios::width() — возвращает значение ширины поля вывода;
int ios:: width (int) — устанавливает ширину поля вывода в соответствии со
значением параметра;
int ios::precision() — возвращает значение точности представления при выводе вещественных чисел;
int ios: precision (int) — устанавливает значение точности представления при
выводе вещественных чисел, возвращает старое значение точности;
char fill() — возвращает текущий символ заполнения;
char fill (char) — устанавливает значение текущего символа заполне-
ния, возвращает старое значение символа.
Перед установкой некоторых флагов требуется сбросить флаги, которые не могут быть установлены одновременно с ними. Для этого удобно использовать вторым параметром метода setf перечисленные ниже статические константы класса ios:
adjustfield (left | right | internal) basefield (dec | oct | hex)
floatfield (scientific | fixed)
