Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
В итоге получаем следующий вывод:
Обратите внимание на то, что последнее число выведено как восьмеричное; иначе говоря, термины
ПОПРОБУЙТЕ
Выведите ваш день рождения в десятичном, восьмеричном и шестнадцатеричном форматах. Обозначьте каждое из этих значений. Выровняйте ваш вывод по столбцам, используя символ табуляции, и выведите свой возраст.
Представление чисел в системе счисления, отличной от десятичной, может ввести читателя в заблуждение. Например, если заранее не знать, в какой системе представлено число, то строка 11 может означать десятичное число 11, а не восьмеричное число 9 (т.е. 11 в восьмеричной системе) или шестнадцатеричное число 17 (т.е. 11 в шестнадцатеричной системе). Для того чтобы избежать таких проблем, можно попросить поток показать базу, в которой представлено целое число. Рассмотрим пример.
В результате получим следующий вывод:
Итак, десятичные числа не имеют префиксов, восьмеричные числа имеют префикс 0, а шестнадцатеричные числа имеют префикс
В десятичном виде эти числа выглядели бы так:
Как вы могли заметить, манипулятор
Итак, существует несколько манипуляторов вывода.
11.2.2.
По умолчанию оператор
Если набрать на клавиатуре числа
то программа выведет их так:
Обратите внимание на то, что при вводе манипуляторы
ПОПРОБУЙТЕ
Завершите фрагмент кода, приведенный выше, и преобразуйте его в программу. Попробуйте ввести предлагаемые числа; затем введите числа
Объясните результат. Попробуйте ввести другие числа, чтобы увидеть, что произойдет.
Для того чтобы принять и правильно интерпретировать префиксы
Функция-член потока
и введете
то получите
11.2.3. Вывод чисел с плавающей точкой
Если вы непосредственно работаете с аппаратным обеспечением, то вам нужны шестнадцатеричные числа (и, возможно, восьмеричные). Аналогично, если вы проводите научные вычисления, то должны форматировать числа с плавающей точкой. Они обрабатываются манипуляторами потока