Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Примечание. Манипуляторы, начинающиеся с no (noshowpos и т

Читайте также:
  1. Важное примечание
  2. КонсультантПлюс: примечание.
  3. ПРИМЕЧАНИЕ
  4. Примечание
  5. Примечание
  6. ПРИМЕЧАНИЕ
  7. ПРИМЕЧАНИЕ

Манипуляторы, начинающиеся с "no" (noshowpos и т. п.), имеют обратное действие по отношению к манипуляторам с такими же именами, но без приставки "no". В графе "Описание" у таких манипуляторов проставлены пробелы.

Таблица 9.2. Манипуляторы и функции стандартного ввода/вывода в C++

Манипуляторы Функции-члены класса Описание
showpos setf(ios::showpos) Выдает знак плюс у выводимых положительных чисел
noshowpos unsetf(ios::showpos)  
showbase setf(ios::showbase) Выдает базу системы счисления в выводимом числе в виде префикса
noshowbase unsetf(ios::showbase)  
uppercase setf(ios::uppercase) Заменяет символы нижнего регистра на символы верхнего регистра в выходном потоке
nouppercase unsetf(ios::uppercase)  
showpoint setf(ios::showpoint) Создает символ десятичной точки в сгенерированном потоке с плавающей точкой (в выводимом числе)
noshowpoint unsetf(ios::showpoint)  
boolalpha setf(ios::boolalpha) Переводит булевый тип в символьный
noboolalpha unsetf(ios::boolalpha)  
unitbuf setf(ios::unitbuf) Сбрасывает буфер вывода после каждой операции вывода
nounitbuf unsetf(ios::unitbuf)  
internal setf(ios::internal, ios::adjustfield) Добавляет символы-заполнители к определенным внутренним позициям выходного потока (речь идет о выводе числа в виде потока символов). Если такие позиции не определены, поток не изменяется
left setf(ios::left, ios:: adjustfield) Добавляет символы-заполнители с конца числа (сдвигая число влево)
right setf(ios::right,ios:: adjustfield) Добавляет символы-заполнители с начала числа (сдвигая число вправо)
dec setf(ios::dec, ios:: basefield) Переводит базу вводимых или выводимых целых чисел в десятичную (введенные после этого манипулятора данные будут выводиться как десятичные)
hex setf(ios::hex,ios:: basefield) Переводит базу вводимых или выводимых целых чисел в шестнадцатеричную (введенные после этого манипулятора данные будут выводиться как шестнадцатеричные)
oct setf(ios::oct,ios:: basefield) Переводит базу вводимых или выводимых целых чисел в восьмеричную (введенные после этого манипулятора данные будут выводиться как восьмеричные)
fixed setf(ios::fixed, ios:: floatfield) Переводит выход с плавающей точкой в выход с фиксированной точкой
scientific setf(ios::scientific, ios:: floatfield) Выдает числа с плавающей точкой в виде, используемом в научных целях: например, число 23450000 будет записано как: 23.45е6
  setbase(int base) Преобразует ввод целых чисел в тип base, где параметр base может быть одним из чисел 8, 10 или 16
fill(с) setfill(char_type c) Задает символ заполнения при выводе данных
precision(n) setprecision(int n) Задает точность вывода данных (количество цифр после точки)
setw(int n) width(n) Задает ширину поля для выводимых данных (количество символов)
endl   Вставляет символ новой строки ('\n') в выходную последовательность символов и сбрасывает буфер ввода
ends   Вставляет символ '\0' в выходную последовательность символов
flush flush() Сбрасывает буфер вывода
ws   Задает пропуск пробелов при вводе

 

Значения по умолчанию:

¨ precision() —6;

¨ width() —0;

¨ fill() — пробел.

В листинге 9.15 приведен пример программы с применением объекта cout (все пояснения можно найти в комментариях). Результат работы программы представлен на рис. 9.11.

Листинг 9.15

// 41.срр: Defines the entry point for the console application.

#include "stdafx.h"

#include <iostream>

#include <iomanip> //включение манипуляторов

#include <conio.h>

// cout example

void _tmain()

{

using namespace std;

int i;

float f;

cout << "Enter i and f >" << endl;

//чтение целого числа и числа с плавающей точкой с устройства stdin

cin >> i >> f;

//вывод целого и переход на новую строку

cout << i << endl;

//вывод числа с плавающей точкой и переход на новую строку

cout << f << endl;

//вывод в шестнадцатеричной системе

cout << hex << i << endl;

//вывод в восьмеричной и десятичной системах

cout << oct << i << dec << i << endl;

//вывод i с указанием его знака

cout << showpos << i << endl;

//вывод i в шестнадцатеричной системе

cout << setbase(16) << i << endl;

/*вывод i в десятичной системе и дополнение справа символом @ до ширины в 20 символов (заполнение начинается от правой границы к левой). Если вы вводите, например, 45, то выведется 45@@@@@@@@@@@@@@@@@@*/

cout << setfill('@') << setw(20) << left << dec << i;

cout << endl;

//вывод того же результата в том же формате, но с использованием функций вместо манипуляторов cout.fill('@');

cout.width(20);

cout.setf(ios::left, ios::adjustfield);

cout.setf(ios::dec, ios::basefield);

cout << i << endl;

//вывод f в научной нотации с точностью 10 цифр

cout << scientific << setprecision(10) << f << endl;

//изменение точности до 6 цифр

cout.precision(6);

//вывод f и возврат к нотации с фиксированной точкой

cout << f << fixed << endl;

_getch();

} // _tmain()

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


Дата добавления: 2015-07-26; просмотров: 67 | Нарушение авторских прав


Читайте в этой же книге: Функции стандартного ввода/вывода | Примечание | Пространства имен | Работа с классом fstream | Работа с классом ifstream |
<== предыдущая страница | следующая страница ==>
Работа с бинарным файлом| Итак, моя задача- сшить фартук

mybiblioteka.su - 2015-2024 год. (0.01 сек.)