Манипуляторы Предназначение Ввод-вывод

boolalpha Устанавливает флаг boolalpha Ввод-вывод

dec Устанавливает флаг dec Ввод-вывод
endl Выводит символ перехода на новую Вывод
строку и очищает буфер

ends Выводит нулевой байт Вывод

fixed Устанавливает флаг fixed Вывод

flush Очищает буфер Вывод

hex Устанавливает флаг hex Ввод-вывод

internal Устанавливает флаг internal Вывод

left Устанавливает флаг left Вывод

noboolalpha Сбрасывает флаг boolalpha Ввод-вывод

noshowbase Сбрасывает флаг showbase Вывод

noshowpoint Сбрасывает флаг showpoint Вывод

noshowpos Сбрасывает флаг showpos Вывод

noskipws Сбрасывает флаг skipws Ввод

nounitbuf Сбрасывает флаг unitbuf Вывод

nouppercase Сбрасывает флаг uppercase Вывод

oct Устанавливает флаг oct Ввод-вывод

resetiosflags (fmtflags f) Сбрасывает флаги, указанные параметром f Ввод-вывод

right Устанавливает флаг right Вывод

scientific Устанавливает флаг scientific Вывод
setbase(int base) Задает основание системы счисления, Ввод-вывод
указанное параметром base

setfill(int ch) Задает символ-заполнитель ch Вывод

setiosflags(fmtflags f) Устанавливает флаги, указанные параметром f Ввод-вывод
setprecision(int p) Задает количество цифр после десятичной точки Вывод

setw(int w) Задает ширину поля, указанную параметром w Вывод

showbase Устанавливает флаг showbase Вывод

showpoint Устанавливает флаг showpoint Вывод

showpos Устанавливает флаг showpos Вывод

skipws Устанавливает флаг skipws Ввод

unitbuf Устанавливает флаг unitbuf Вывод

uppercase Устанавливает флаг uppercase Вывод

ws Игнорирует ведущие разделители Ввод

Пример 1. Рассмотрим пример, иллюстрирующий применение манипуляторов.

#include <iostream>

#include <iomanip>

using namespace std;

int main(){

cout << hex << 100 << endl;

cout << setfill(‘?’) << setw(10) << 2343.0;

return 0;

}

Результат работы программы приведен ниже.

??????2343

Пример 2.

#include <iostream>

using namespace std;

int main()

{

cout.setf(ios : : showpoint);

cout.setf(ios : : showpos);

cout << 100.0; // Выводим число +100.0
return 0;

}

Пример3. Получение данных от пользователя на языке С++

// программа предлагает пользователю ввести длину в футах,

// после чего переводит полученное значение в метры и сантиметры

# include <iostream>

# include <iomanip>

int main ()

{

float feet, meters, centimeters; /* объявление переменных */

cout << " Введите количество футов";

cin >> feet;

// в выражениях используются операторы << (для вывода) и >> (для ввода) классов ostream и istream,

// подключаемых в файле IOSTREAM. Оба эти оператора являются перегруженными и

// поддерживают ввод/вывод данных всех базовых типов.

while (feet > 0) {

centimeters = feet * 12 * 2.54;

meters = centimeters/100;

cout << setw(8) << setprecision(2)

<< setiosflags(ios : : fixed) << feet

<< " (футы) равняется \n"; // файл IOMANIP содержит объявления

cout << setw(8) // трех функций, являющихся членами класса

<< meters << " (метры) \n"; // ios (базовый в иерархии классов ввода/вывода):

cout << setw(8) // setw() задает минимальную ширину (в символах) выводимого поля

<< centimeters << " (сантиметры) \n"; // setprecision() задает число цифр после

cout << " \nВведите другое значение \n"; // десятичной точки

cout << " (0 - конец программы): "; // функция setw() определяет формат вывода только

cin >> feet; // следующей за ней переменной, после чего все установки сбрасываются

} // в отличие от нее функция setiosflags() вызывается один раз, устанавливая флаг

cout << ">>> До свидания! <<<"; // fixed, который задает вывод чисел с плавающей запятой в

// фиксированном формате, т. е. Без экспоненты.

return(0);

}

Практическая часть

Изучите методические указания.

2. Напишите программу, которая находит значение выражения в соответствии с одним из вариантов заданий, для входных данных, определенных пользователем. Программа должна выводить на экран вычисляемое выражение со значениями исходных переменных и результат в различных форматах: десятичном, восьмеричном, шестнадцатеричном и научном. Исходные переменные имеют типы: x - double, y - int, z - long double.

Варианты заданий

1 Манипуляторы Предназначение Ввод-вывод - student2.ru .

2 Манипуляторы Предназначение Ввод-вывод - student2.ru .

3 Манипуляторы Предназначение Ввод-вывод - student2.ru .

4 Манипуляторы Предназначение Ввод-вывод - student2.ru .

5 Манипуляторы Предназначение Ввод-вывод - student2.ru .

6 Манипуляторы Предназначение Ввод-вывод - student2.ru .

7 Манипуляторы Предназначение Ввод-вывод - student2.ru .

8 Манипуляторы Предназначение Ввод-вывод - student2.ru .

3. Оформите отчет по выполнению практической работы, в котором отразите: номер работы, тему, цель, задание; текст программы на языке С++; результаты выполнения программы; краткие выводы, ответы на вопросы.

Вопросы для контроля

1 Какой флаг позволяет игнорировать разделители при вводе данных из потока?

2 Какой флаг позволяет выравнивать строки вывода по левому краю?

3 Какой флаг позволяет выводить десятичную точку и незначащие нули при отображении десятичных чисел?

Литература

1 Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб. : Питер, 2011. – 461 с.

2 Шилдт Г. Полный справочник по С++, 4-е издание. : Пер. с англ. – М. : Издательский дом «Вильям», 2012. – 800 с.

Практическая работа №9

Тема: Составление программ линейной структуры

Цель: Освоить способы программирования линейного алгоритма в среде Borland C++.

Оборудование и программное обеспечение:

1 Персональный компьютер IBM PC/AT.

2 Операционная система Windows XP.

3 Среда программирования Borland C++.

Практическая часть

Наши рекомендации