- •1. Краткие теоретические сведения
- •1.4. Пустой оператор
- •1.5. Составной оператор (блок)
- •1.6. Операторы начала и конца программы
- •Int main()
- •1.7. Оператор return
- •1.8. Оператор присваивания
- •1.8.1. Множественное присваивание
- •1.8.2. Ошибки при присваивании
- •1.8.3. Не путайте операторы равенства и присвоения
- •1.8.4. Составные операторы присвоения
- •1.8.6. Присваивание значения при объявлении
- •1.9. Операторы ввода-вывода
- •1.10. Функции ввода и вывода
- •1.10.1. Функция printf
- •1.10.2. Функция scanf
- •1.11. Операторы потокового ввода и вывода
- •1.11.1. Использование cout для отображения вывода на экран
- •1.11.2. Использование cout для вывода чисел
- •1.11.3. Вывод нескольких значений одновременно
- •1.11.4. Использование специальных символов вывода
- •1.11.5. Другие специальные символы
- •1.11.5. Вывод восьмеричных и шестнадцатеричных значений
- •1.11.6. Вывод на стандартное устройство ошибок
- •1.11.7. Управление шириной вывода
- •1.11.8. Директива #define
- •1.11.9. Оператор потокового вывода cin
- •1.11.10. Второе знакомство с cin
- •1.11.11. Следите за ошибками переполнения
- •1.11.12. Следите за ошибками несовпадения типов
- •1.11.13. Чтение символьных данных
- •1.11.14. Чтение слов с клавиатуры
- •1.11.15. Чтение строковых данных
- •1.12. Комментарии. Использование пробелов
- •1.13. Линейный вычислительный процесс
- •1.16. Таблица выбора идентификаторов
- •2. Задание
- •2.10. Задания
- •2.10.1. Задание 1
- •2.10.2. Задание 2
- •2.10.3. Задание 3 (домашнее)
- •3. Выводы
- •4. Требование к отчету
- •5. Вопросы для самоконтроля
- •Литература
- •Оглавление
1.11.5. Вывод восьмеричных и шестнадцатеричных значений
Программы, рассмотренные ранее до сих пор, выводили числа в десятичном виде. В зависимости от назначения ваших программ вам, возможно, потребуется выводить числа в восьмеричном или шестнадцатеричном виде. Для этого можно разместить модификаторы dec, oct и hex внутри выходного потока. Следующая программа LR5-22.cpp в примере 5.22 использует эти модификаторы для вывода значений в десятичном, восьмеричном и шестнадцатеричном виде:
Пример 5.22.
/*Программа LR5-Primer22*/
#include <iostream.h>
int main()
{
cout << "Восьмеричный: " << oct << 10 << ' ' << 20 << endl;
cout << "Шестнадцатеричный: " << hex << 10 << ' ' << 20 << endl;
cout << "Десятичный: " << dec << 10 << ' ' << 20 << endl;
getchar();
return 0;
}
Когда вы откомпилируете и запустите эту программу, на экране появится следующий результат:
Восьмеричный: 12 24
Шестнадцатеричный: а 14
Десятичный: 10 20
Примечание: Когда вы используете один из модификаторов для выбора восьмеричного, шестнадцатеричного или десятичного вывода, ваш выбор будет оставаться в силе до тех пор, пока программа не закончится или пока вы не используете другой модификатор.
1.11.6. Вывод на стандартное устройство ошибок
Как вы уже знаете, используя cout, вы можете перенаправить вывод программы на устройство или файл с помощью операторов переназначения вывода операционной системы. Однако, если ваши программы сталкиваются с ошибкой, вы, вероятно, не захотите, чтобы сообщение об ошибке было перенаправлено с экрана. Перенаправление сообщений об ошибках в файл может скрыть от пользователя факт появления ошибки.
Если вашей программе нужно вывести сообщение об ошибке, вы должны использовать выходной поток cerr. C++ связывает cerr со стандартным устройством ошибок операционной системы. Следующая программа LR5-23.cpp в примере 5.23 использует выходной поток cerr для вывода на экран сообщения "Это сообщение появляется всегда ".
Пример 5.23.
/*Программа LR5-Primer23*/
#include <iostream.h>
#include<conio.h>
int main()
{
cerr << "Это сообщение появляется всегда";
getch();
return 0;
}
Тестирование:
Откомпилируйте и запустите эту программу. Так как операционная система не позволит вашим программам перенаправить вывод, записываемый на стандартное устройство ошибок, сообщение появится на вашем экране.
1.11.7. Управление шириной вывода
Несколько предыдущих программ выводили числа на экран. Чтобы гарантировать правильное отображение этих чисел (с правильной расстановкой пробелов), программы включали пробелы до и после чисел. При выводе на cout или cerr ваши программы могут указать ширину вывода каждого числа, используя модификатор setw (установка ширины). С помощью setw программы указывают минимальное количество символов, занимаемое числом. Например, следующая программа в примере 5.24 использует модификатор setw для выбора ширины 3, 4, 5 и 6 для числа 1001. Чтобы использовать модификатор setw, ваша программа LR5-24.cpp в примере 5.24 должна включать заголовочный файл iomanip.h.
Пример 5.24.
/*Программа LR5-Primer24*/
#include <iostream.h>
#include <iomanip.h>
#include<conio.h>
int main ()
{
cout << "Мое любимое число равно" << setw(3) << 1001 << endl;
cout << "Мое любимое число равно" << setw(4) << 1001 << endl;
cout << "Мое любимое число равно" << setw(5) << 1001 << endl;
cout << "Мое любимое число равно" << setw(6) << 1001 << endl;
cout << "Мое любимое число равно" << setw(9) << 1001 << endl;
getch();
return 0;
}
Тестирование:
Когда вы откомпилируете и запустите эту программу, на экране появится следующий вывод:
Если вы указываете ширину с помощью setw, вы указываете минимальное количество символьных позиций, занимаемых числом. В предыдущей программе модификатор setw(3) указывал минимум три символа. Однако, так как число 1001 потребовало больше трех символов, cout использовал реально требуемое количество, которое в данном случае равнялось четырем. Следует отметить, что при использовании setw для выбора ширины, указанная ширина действительна для вывода только одного числа. Если вам необходимо указать ширину для нескольких чисел, вы должны использовать setw несколько раз.
Замечание: Предыдущая программа использует заголовочный файл <iomanip.h>. Вам, возможно, понадобится сейчас напечатать и исследовать содержимое этого файла. Как и в случае с заголовочным файлом <iostream.h> вы найдете данный файл внутри подкаталога INCLUDE, который находится в каталоге с файлами вашего компилятора.
Запомните про потоковый вывод:
выходной поток cout позволяет вам выводить символы и числа;
используя специальные символы внутри выходного потока, ваша программа может указать новую строку, табуляцию и другие специальные возможности;
для продвижения курсора в начало следующей строки программы могут создать новую строку, используя символ \n или модификатор endl;
модификаторы dec, oct и hex позволяют программам выводить значения в десятичном, восьмеричном и шестнадцатеричном виде;
используя выходной поток cerr, программы могут записать сообщения в стандартное устройство ошибок операционной системы;
с помощью модификатора setw ваши программы могут управлять шириной вывода чисел.