Spec-Zone.ru › C++

std::left, std::right, std::internal

Объявлено в заголовочном файле <ios>
std::ios_base& left( std::ios_base& str );
(1)
std::ios_base& right( std::ios_base& str );
(2)
std::ios_base& internal( std::ios_base& str );
(3)

Изменяет положение символов заполнения в выходном потоке. left и right применяются к значениям любых типов, internal применяется к целочисленным, вещественным и денежным значениям. Не влияет на ввод.

1) Устанавливает adjustfield потока str в значение left, как если бы был вызван str.setf(std::ios_base::left, std::ios_base::adjustfield).
2) Устанавливает adjustfield потока str в значение right, как если бы был вызван str.setf(std::ios_base::right, std::ios_base::adjustfield).
3) Устанавливает adjustfield потока str в значение internal, как если бы был вызван str.setf(std::ios_base::internal, std::ios_base::adjustfield).

Начальное значение по умолчанию для стандартных потоков эквивалентно right.

Это манипулятор ввода-вывода. Его можно вызвать с выражением, например out << std::left, для любого out типа std::basic_ostream или с выражением, например in >> std::left, для любого in типа std::basic_istream.

Параметры

str - ссылка на поток ввода-вывода

Возвращаемое значение

str (ссылка на поток после применения манипулятора).

Пример

#include <iomanip>
#include <iostream>
#include <locale>

int main()
{
    std::cout.imbue(std::locale("en_US.utf8"));

    std::cout << "Default positioning:\n" << std::setfill('*')
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << std::hex << std::showbase << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << "\n\n";
              
    std::cout << "Left positioning:\n" << std::left
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << "\n\n";

    std::cout << "Internal positioning:\n" << std::internal
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << "\n\n";

    std::cout << "Right positioning:\n" << std::right
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << '\n';
}

Вывод:

Default positioning:
*******-1.23
********0x2a
***USD *1.23

Left positioning:
-1.23*******
0x2a********
USD *1.23***

Internal positioning:
-*******1.23
0x********2a
USD ****1.23

Right positioning:
*******-1.23
********0x2a
***USD *1.23

См. также

setw
изменяет ширину следующего поля ввода-вывода
(функция)
setfill
изменяет символ заполнения
(шаблон функции)
showbasenoshowbase
управляет тем, используется ли префикс для указания основания системы счисления
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/manip/left

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API