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) Устанавливает выравнивание потока str по левому краю, как если бы вызов был str.setf(std::ios_base::left, std::ios_base::adjustfield).
2) Устанавливает выравнивание потока str по правому краю, как если бы вызов был str.setf(std::ios_base::right, std::ios_base::adjustfield).
3) Устанавливает внутреннее выравнивание потока str, как если бы вызов был 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/w/cpp/io/manip/left

Spec-Zone.ru

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