
- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
60 Глава 2
Манипуляторы
определены в заголовочном файле
<iomanip>,
поэтому вам пона-
добится для него
добавить директиву.
Манипулятором, который вам не-
обходим,
будет setw
(n).
Он выводит значение, следующее за ним,
выравнивая его в
поле пробелов шириной
n,
то есть setw
(6)
представит
следующее за ним значение
в поле
шириной 6 пробелов. Посмотрим на это в
действии.
Чтобы получить вывод более похожий на тот, что вам нужен, вы можете изменить программу следующим образом:
Описание полученных результатов
Среди изменений, внесенных в последнем примере — добавление директивы ♦include для заголовка <iomanip>, добавление объявления using для имени setw из пространства имен std и вставка манипулятора setw () в выходной поток перед вы- водом значений каждой переменной, так что их значения выводятся в поля шириной в шесть символов. В результате вы получите симпатичный четкий вывод, в котором два значения разделены:
1234 5678
Обратите внимание, что манипулятор setw () работает только с единственным выходным значением, которое следует непосредственно за его вставкой в поток. Вы должны вставлять манипуляторы непосредственно перед каждым значением, которое хотите выровнять в пределах поля определенной ширины. Если вы вставите только один setw (), он воздействует лишь на первое значение, отправленное в выходной поток вслед за ним. Любые последующие значения будут выведены в обычной мане- ре. Можете убедиться в этом, исключив второй setw (6) и его операцию вставки из последнего примера.
Управляющие последовательности
Когда вы пишете символьную строку, заключенную в двойные кавычки, то мо- жете включить в нее специальные символы, называемые управляющими последо- вательностями (escape sequences). Они так называются потому, что позволяют по- местить в строку символы, которые не могут быть представлены иным образом, за
Данные,
переменные
и
вычисления
счет того, что они избегают (escaping) обычного процесса интерпретации символов. Управляющая последовательность начинается с символа обратного слеша \, который заставляет компилятор интерпретировать следующий за ним символ особым обра- зом. Например, символ табуляции записывается, как \t, так что t понимается компи- лятором как табуляция в строке, а не буква 't'. Взгляните на следующие два оператора вывода:
Они выведут на экран следующие строки:
Комбинация \t во втором операторе вывода сдвигает следующий за ней текст в первую позицию табуляции.
Фактически, вместо использования endl вы можете применять управляющую по- следовательность символа новой строки \п в каждой строке, поэтому предыдущие операторы можно переписать так
:
В табл. 2.3 даны некоторые управляющие последовательности, которые могут вам пригодиться.
Очевидно, что если вы хотите включить обратный слеш или двойную кавычку в строку, вы должны использовать соответствующую управляющую последовательность, чтобы представить их. В противном случае обратный слеш будет интерпретирован как начало другой управляющей последовательности, а двойная кавычка — как конец символьной строки.
Вы также можете применять символы, специфицированные управляющими после- довательностями, в инициализации переменных типа char, например:
Поскольку символьный литерал ограничивается символами одиночной кавычки, вы должны использовать управляющую последовательность, чтобы специфицировать символьный литерал, представляющий саму одиночную кавычку, то есть 1 \1 1.