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

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

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

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

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

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

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



В 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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