Методика применения манипуляторов в потоках вывода в языке С++ | Статья в журнале «Молодой ученый»

Авторы: ,

Рубрика: Информатика

Опубликовано в Молодой учёный №11 (145) март 2017 г.

Дата публикации: 18.03.2017

Статья просмотрена: 50 раз

Библиографическое описание:

Бакаев И. И., Шафиев Т. Р. Методика применения манипуляторов в потоках вывода в языке С++ // Молодой ученый. — 2017. — №11. — С. 34-36. — URL https://moluch.ru/archive/145/40558/ (дата обращения: 22.09.2018).



В C++ ввод/вывод данных производится потоками, т. е. последовательностями байтов. При операциях ввода байты направляются от устройства (например, клавиатуры, дисковода, сетевой платы) в основную память. В операциях вывода поток байтов направляется из основной памяти на устройство (например, экран монитора, принтер, дисковод, сетевую плату).

Специфический смысл этим байтам придают прикладные программы. Байты могут представлять ASCII-символы, сырые данные внутреннего формата, графические изображения, оцифрованную речь, цифровое видео или любой другой вид информации, с которой работает приложение.

Системные механизмы ввода/вывода должны обеспечивать целостное и надежное перемещение байтов данных от устройств в память (и наоборот). Передача данных нередко связана с механическим движением, например, вращением магнитного диска, протяжкой ленты или нажатием клавиш на клавиатуре. Время, которое уходит на обмен данными с такими устройствами, обычно значительно превышает то, что требуется процессору на обработку этих данных. Поэтому операции ввода/вывода требуют тщательного планирования и настройки для того, чтобы обеспечивалась максимальная производительность системы.

В C++ имеются возможности ввода/вывода «низкого уровня» и «высокого уровня». Низкоуровневый, т. е. бесформатный ввод/вывод обычно состоит в передаче заданного числа байт от устройства в память или из памяти устройству. В таких операциях единицей информации является байт. Операции низкого уровня способны быстро передавать большие объемы информации, но в не слишком удобной для человека форме. Люди предпочитают пользоваться операциями ввода/вывода высокого уровня, т. е. форматируемым вводом/выводом, в котором байты группируются в осмысленные единицы данных вроде целых чисел, чисел с плавающей точкой, символов, строк и определяемых пользователем типов. Такой, ориентированный на тип, подход пригоден для большинства задач ввода/вывода, кроме обработки файлов большого объема. [1] Чтобы оптимизировать потоков ввод/вывода используются манипуляторы.

В C++ имеются различные манипуляторы потоков, которые служат задачам форматирования. Манипуляторы могут производить установку ширины поля, задание точности, установку и сброс флагов форматирования, задание символа-заполнителя, очистку потоков, передачу в выходной поток символа новой строки (со сбросом потока), передачу в выходной поток нуль-символа, пропуск пробельных символов во входном потоке. [1]

Поток ввода-вывода — это логическое устройство, предназначенное для приема и выдачи информации пользователю. Поток связан с физическим устройством с помощью системы ввода-вывода С++. [3]

Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод). Третий класс, iostream, является производным от них и поддерживает двунаправленный ввод/вывод. Для удобства в библиотеке определены три стандартных объекта-потока:

‒ cin — объект класса istream, соответствующий стандартному вводу. В общем случае он позволяет читать данные с терминала пользователя;

‒ cout — объект класса ostream, соответствующий стандартному выводу. В общем случае он позволяет выводить данные на терминал пользователя;

‒ cerr — объект класса ostream, соответствующий стандартному выводу для ошибок. В этот поток мы направляем сообщения об ошибках программы. [2]

В статье рассмотрен вопрос применения манипуляторов в оператор cout. Начинающие первом делом работают с операторами ввода/вывода. Чтобы взять результат в консольном окне, им понадобится оператор cout. Если задача имеет отношение к системе счисления, тогда используются dec, oct, hex и setbase манипуляторы.

Манипуляторы — это объекты, определенные в заголовочном файле iomanip, которые может управлять потоками ввод-вывода (чтобы иметь возможность пользоваться манипуляторами, вы должны не забыть включить iomanip в программу). Единственное преимущество манипуляторов в том, что программа может включать их прямо в поток, не прибегая к вызову отдельной функции. [5]

Целые числа обычно интерпретируются как десятичные (по основанию 10) значения. Чтобы изменить основание системы счисления, в которой поток будет интерпретировать целые числа, используют манипулятор hex для шестнадцатеричной системы (по основанию 16) и манипулятор oct для восьмеричной (по основанию 8). Манипулятор потока dec возвращает поток к десятичной системе счисления. [1]

Основание системы счисления в потоке также можно изменить манипулятором потока setbase, у который имеется один целый аргумент, принимающий значения 10, 8 или 16 для основания системы счисления. Чтобы использовать манипуляторы, нам необходимо включить в программу заголовочный файл #include. [4]

Рассмотрим на примерах.

#include // заголовочные файлы

#include // заголовочные файлы

#include // заголовочные файлы

using namespace std;

int main()

{

setlocale(LC_CTYPE, "rus"); // вызов функции настройки локализация консолы

int chislo;

cout<<"Выведите число: ";

cin>>chislo; //ввести число

/* Использование hex для вывода шестнадцатеричного числа*/

cout<<"Число "<"<

<

/* Использование oct для вывода восьмеричного числа*/

cout< "<

<

/* Использование setbase для вывода десятичного числа*/

cout<<"Число "< "<

return 0;

}

Результат работы программы на рисунке 1.

Рис. 1.

Литература:

  1. Х. М. Дейтел, П. Дж. Дейтел. Как программировать на С++: Пятое издание. Пер. с англ. — М.: ООО «Бином-Пресс», 2008 г. — 1456 с.: ил.
  2. Страуструп, Бьярне. Программирование: принципы и практика использования C++.: Пер. с англ. — М.: ООО «И. Д. Вильяме», 2011. — 1248 с.: ил.
  3. С. В. Глушаков, А. В. Коваль, С. В. Смирнов. Язык программирование С++. Учебный курс. Харьков «Фолио» Ростов-на-Дону «Феникс» 2001. — 490 с.
  4. Р. Лафоре. Объектно-ориентированное программирование в С++: 4-Е издание. Питер 2004. — 922 с.
  5. Дэвис, Стефан,. С++ для «чайников», 4-е издание.: Пер. с. англ.: — М.: Издательский дом «Вильямс», 2003, — 336 с.: ил.: Парал. тит. англ.
Основные термины (генерируются автоматически): операция ввода, вывод, основание системы счисления, манипулятор, поток, сетевая плата, основная память, общий случай, заголовочный файл, стандартный вывод.


Похожие статьи

Сравнительный анализ методов перевода чисел из системы...

Основные термины (генерируются автоматически): Китайская теорема, СОК, схема перевода числа, модуль, блок сложения, позиционная система счисления, остаток, операция, блок взятия, блок.

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

В настоящее время снифферы работают в сетях на вполне законном основании.

Если главная задача состоит в получении от системы важного файла, ответы

Выводы. Таким образом, были рассмотрены основные сетевые атаки и способы борьбы с ними.

Оптимизация алгоритма выравнивания биологических...

Основное применение нумераций — построение эффективной модели представления данных в памяти [13].

Вывод. В работе рассмотрен метод переупорядочивания элементов матрицы

Разработка алгоритма работы системы автоматического выделения поврежденных секций.

Применение графической библиотеки SDL2.0 для...

Общий принцип взаимосвязи процедурных блоков и логики игрового проекта представлен на рисунке 1. Запуск любой игры начинается с вывода меню, из которого производится переход к списку

Для работы с аудио необходимо подключить заголовочный файл SDL_audio.h.

Запоминающие устройства с произвольным доступом

Принцип работы такого устройства заключается в любом физическом эффекте, который обеспечивает приведение системы к двум или более постоянным состояниям.

Общая структура памяти спроизвольным доступом.

Методология объектно-ориентированного программирования на...

Представим поток вывода для каждой из утилит-этапов конвейера в случае моста с 4 портами ethernet: 1. GetPortList

В этом и заключается основной эффект применения ООП - методологии. Ответ же на вопрос, как строится подобная система, почему в стержне...

Устройство сопряжения объектов для авиационного тренажера

Главной целью проекта является создание системы для обмена и обработки потоков данных между

В этом случае наилучшими характеристиками обладает система визуализации на базе

Выводы. В работе были рассмотрены основные этапы и методы проектирования...

Проблемы вычислений с высокой точностью при использовании...

Очевидно, что при наличии нескольких вычислительных потоков невозможно гарантировать определенный порядок выполнения арифметических операций.

Для того чтобы гарантировать корректно округленный результат, в общем случае

или в основной оперативной памяти.

Применение технологии смешанного обучения в модели...

– понятия система счисление, основание системы счисления, виды систем счисления

Уметь согласовывать мнение с партнером и находить общее решение.

Основные термины (генерируются автоматически): система счисления, урок, основание системы счисления...

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Сравнительный анализ методов перевода чисел из системы...

Основные термины (генерируются автоматически): Китайская теорема, СОК, схема перевода числа, модуль, блок сложения, позиционная система счисления, остаток, операция, блок взятия, блок.

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

В настоящее время снифферы работают в сетях на вполне законном основании.

Если главная задача состоит в получении от системы важного файла, ответы

Выводы. Таким образом, были рассмотрены основные сетевые атаки и способы борьбы с ними.

Оптимизация алгоритма выравнивания биологических...

Основное применение нумераций — построение эффективной модели представления данных в памяти [13].

Вывод. В работе рассмотрен метод переупорядочивания элементов матрицы

Разработка алгоритма работы системы автоматического выделения поврежденных секций.

Применение графической библиотеки SDL2.0 для...

Общий принцип взаимосвязи процедурных блоков и логики игрового проекта представлен на рисунке 1. Запуск любой игры начинается с вывода меню, из которого производится переход к списку

Для работы с аудио необходимо подключить заголовочный файл SDL_audio.h.

Запоминающие устройства с произвольным доступом

Принцип работы такого устройства заключается в любом физическом эффекте, который обеспечивает приведение системы к двум или более постоянным состояниям.

Общая структура памяти спроизвольным доступом.

Методология объектно-ориентированного программирования на...

Представим поток вывода для каждой из утилит-этапов конвейера в случае моста с 4 портами ethernet: 1. GetPortList

В этом и заключается основной эффект применения ООП - методологии. Ответ же на вопрос, как строится подобная система, почему в стержне...

Устройство сопряжения объектов для авиационного тренажера

Главной целью проекта является создание системы для обмена и обработки потоков данных между

В этом случае наилучшими характеристиками обладает система визуализации на базе

Выводы. В работе были рассмотрены основные этапы и методы проектирования...

Проблемы вычислений с высокой точностью при использовании...

Очевидно, что при наличии нескольких вычислительных потоков невозможно гарантировать определенный порядок выполнения арифметических операций.

Для того чтобы гарантировать корректно округленный результат, в общем случае

или в основной оперативной памяти.

Применение технологии смешанного обучения в модели...

– понятия система счисление, основание системы счисления, виды систем счисления

Уметь согласовывать мнение с партнером и находить общее решение.

Основные термины (генерируются автоматически): система счисления, урок, основание системы счисления...

Задать вопрос