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

From cppreference.com
< cpp‎ | io‎ | manip

Defined in header `<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) |

Modifies the default positioning of the fill characters. `left` and `right` apply to any output, `internal` applies to integer, floating-point, and monetary output. Has no effect on input.

1) sets the `adjustfield` of the stream `str` to `left` as if by calling str.setf( std::ios_base::left, std::ios_base::adjustfield )

2) sets the `adjustfield` of the stream `str` to `right` as if by calling str.setf( std::ios_base::right, std::ios_base::adjustfield )

3) sets the `adjustfield` of the stream `str` to `internal` as if by calling str.setf( std::ios_base::internal, std::ios_base::adjustfield )

This is an I/O manipulator. It may be called with an expression such as out << std::left for any `out` of type std::basic_ostream or with an expression such as in >> std::left for any `in` of type std::basic_istream.

### Parameters

str | - | reference to I/O stream

### Return value

`str` (reference to the stream after manipulation)

### Example

Run this code

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

    int main()
    {
        std::cout.imbue(std::locale("en_US.utf8"));
        std::cout << "Left fill:\n" << std::left << 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 << "Internal fill:\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 fill:\n" << std::right
                  << std::setw(12) << -1.23  << '\n'
                  << std::setw(12) << 42 << '\n'
                  << std::setw(12) << std::put_money(123, true) << '\n';
    }

Output:

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

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

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

### See also

setw | changes the width of the next input/output field (function)
setfill | changes the fill character (function template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/manip/left&oldid=88301"